From dca68f164ab88bba2306f34662d86e1384ce7f95 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Wed, 24 Jun 2020 23:34:21 +0300 Subject: [PATCH 1/4] init --- std/assembly/array.ts | 2 +- tests/compiler/std/array.optimized.wat | 2276 +- tests/compiler/std/array.ts | 4 + tests/compiler/std/array.untouched.wat | 26332 ----------------------- 4 files changed, 1436 insertions(+), 27178 deletions(-) diff --git a/std/assembly/array.ts b/std/assembly/array.ts index 107e3272ca..693f43c1b2 100644 --- a/std/assembly/array.ts +++ b/std/assembly/array.ts @@ -496,7 +496,7 @@ export class Array { flat(): T { if (!isArray()) { - ERROR("Cannot call flat() on Array where T is not an Array."); + throw new TypeError("Cannot call flat() on Array where T is not an Array."); } // Get the length and data start values var length = this.length_; diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 9499664b74..83198f754f 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -11,6 +11,7 @@ (type $none_=>_none (func)) (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $i32_i32_i32_=>_f32 (func (param i32 i32 i32) (result f32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) (type $i64_=>_none (func (param i64))) @@ -20,7 +21,6 @@ (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) (type $i64_=>_i64 (func (param i64) (result i64))) (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) - (type $i32_i32_i32_=>_f32 (func (param i32 i32 i32) (result f32))) (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) @@ -234,12 +234,14 @@ (data (i32.const 9952) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\90%\00\00\d0%\00\00\00\00\00\00\f0%\00\000&\00\00P&\00\00p&\00\00\b0&") (data (i32.const 10004) "\01") (data (i32.const 10020) "\01") + (data (i32.const 10032) "n\00\00\00\01\00\00\00\01\00\00\00n\00\00\00C\00a\00n\00n\00o\00t\00 \00c\00a\00l\00l\00 \00f\00l\00a\00t\00(\00)\00 \00o\00n\00 \00A\00r\00r\00a\00y\00<\00T\00>\00 \00w\00h\00e\00r\00e\00 \00T\00 \00i\00s\00 \00n\00o\00t\00 \00a\00n\00 \00A\00r\00r\00a\00y\00.") (table $0 57 funcref) (elem (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|2 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|16 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|44 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|44 $start:std/array~anonymous|47 $start:std/array~anonymous|48 $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $std/array/arr (mut i32) (i32.const 0)) (global $std/array/i (mut i32) (i32.const 0)) + (global $~argumentsLength (mut i32) (i32.const 0)) (global $~lib/math/random_seeded (mut i32) (i32.const 0)) (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) @@ -252,11 +254,45 @@ (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) (global $~started (mut i32) (i32.const 0)) + (global $std/array/ExtendedArray i32 (i32.const 26)) (export "_start" (func $~start)) (export "memory" (memory $0)) + (export "ExtendedArray" (global $std/array/ExtendedArray)) + (export "ExtendedArray#constructor" (func $~lib/array/Array#constructor@varargs)) + (export "ExtendedArray#get:length" (func $~lib/array/Array#get:length)) + (export "ExtendedArray#set:length" (func $~lib/array/Array#set:length)) + (export "ExtendedArray#every" (func $~lib/array/Array#every)) + (export "ExtendedArray#findIndex" (func $~lib/array/Array#findIndex)) + (export "ExtendedArray#fill" (func $~lib/array/Array#fill@varargs)) + (export "ExtendedArray#includes" (func $~lib/array/Array#includes@varargs)) + (export "ExtendedArray#indexOf" (func $~lib/array/Array#indexOf@varargs)) + (export "ExtendedArray#lastIndexOf" (func $~lib/array/Array#lastIndexOf@varargs)) + (export "ExtendedArray#push" (func $~lib/array/Array#push)) + (export "ExtendedArray#concat" (func $~lib/array/Array#concat)) + (export "ExtendedArray#copyWithin" (func $~lib/array/Array#copyWithin@varargs)) + (export "ExtendedArray#pop" (func $~lib/array/Array#pop)) + (export "ExtendedArray#forEach" (func $~lib/array/Array#forEach)) + (export "ExtendedArray#map" (func $~lib/array/Array#map)) + (export "ExtendedArray#map" (func $~lib/array/Array#map)) + (export "ExtendedArray#filter" (func $~lib/array/Array#filter)) + (export "ExtendedArray#reduce" (func $~lib/array/Array#reduce)) + (export "ExtendedArray#reduce" (func $~lib/array/Array#reduce)) + (export "ExtendedArray#reduceRight" (func $~lib/array/Array#reduceRight)) + (export "ExtendedArray#reduceRight" (func $~lib/array/Array#reduceRight)) + (export "ExtendedArray#shift" (func $~lib/array/Array#shift)) + (export "ExtendedArray#some" (func $~lib/array/Array#some)) + (export "ExtendedArray#unshift" (func $~lib/array/Array#unshift)) + (export "ExtendedArray#slice" (func $~lib/array/Array#slice@varargs)) + (export "ExtendedArray#splice" (func $~lib/array/Array#splice@varargs)) + (export "ExtendedArray#reverse" (func $~lib/array/Array#reverse)) + (export "ExtendedArray#sort" (func $~lib/array/Array#sort@varargs)) + (export "ExtendedArray#join" (func $~lib/array/Array#join@varargs)) + (export "ExtendedArray#flat" (func $~lib/array/Array#flat)) + (export "ExtendedArray#toString" (func $~lib/array/Array#toString)) + (export "__setArgumentsLength" (func $~setArgumentsLength)) (func $~lib/rt/pure/__release (param $0 i32) local.get $0 - i32.const 10032 + i32.const 10160 i32.gt_u if local.get $0 @@ -845,11 +881,11 @@ if unreachable end - i32.const 10032 + i32.const 10160 local.tee $0 i32.const 0 i32.store - i32.const 11600 + i32.const 11728 i32.const 0 i32.store loop $for-loop|0 @@ -860,7 +896,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 10032 + i32.const 10160 i32.add i32.const 0 i32.store offset=4 @@ -878,7 +914,7 @@ i32.add i32.const 2 i32.shl - i32.const 10032 + i32.const 10160 i32.add i32.const 0 i32.store offset=96 @@ -896,13 +932,13 @@ br $for-loop|0 end end - i32.const 10032 - i32.const 11616 + i32.const 10160 + i32.const 11744 memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - i32.const 10032 + i32.const 10160 global.set $~lib/rt/tlsf/ROOT end local.get $0 @@ -1460,7 +1496,7 @@ (local $1 i32) (local $2 i32) local.get $0 - i32.const 10032 + i32.const 10160 i32.gt_u if local.get $0 @@ -1507,29 +1543,33 @@ end local.get $0 ) - (func $~lib/array/Array#constructor (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) (local $5 i32) - i32.const 16 - i32.const 3 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.tee $3 + local.get $0 + i32.eqz + if + i32.const 16 + i32.const 3 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 i32.const 0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 0 i32.store offset=12 - local.get $0 + local.get $1 i32.const 268435452 i32.gt_u if @@ -1540,43 +1580,43 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 2 i32.shl - local.tee $4 + local.tee $5 i32.const 0 call $~lib/rt/tlsf/__alloc - local.tee $1 + local.tee $3 i32.const 0 - local.get $4 + local.get $5 call $~lib/memory/memory.fill - local.get $1 + local.get $3 local.set $2 - local.get $1 local.get $3 + local.get $0 i32.load - local.tee $5 + local.tee $4 i32.ne if local.get $2 call $~lib/rt/pure/__retain local.set $2 - local.get $5 + local.get $4 call $~lib/rt/pure/__release end - local.get $3 + local.get $0 local.get $2 i32.store + local.get $0 local.get $3 - local.get $1 i32.store offset=4 - local.get $3 - local.get $4 + local.get $0 + local.get $5 i32.store offset=8 - local.get $3 local.get $0 + local.get $1 i32.store offset=12 - local.get $3 + local.get $0 ) (func $~lib/array/Array.isArray<~lib/array/Array | null> (param $0 i32) (result i32) local.get $0 @@ -1876,6 +1916,10 @@ local.get $0 call $~lib/rt/pure/__retain ) + (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.get $1 local.get $0 @@ -2273,7 +2317,7 @@ local.get $2 call $~lib/memory/memory.copy local.get $1 - i32.const 10032 + i32.const 10160 i32.ge_u if local.get $1 @@ -2345,28 +2389,29 @@ i32.store offset=8 end ) - (func $~lib/array/Array#push (param $0 i32) (param $1 i32) + (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 $2 + local.tee $3 i32.const 1 i32.add - local.tee $3 + local.tee $2 call $~lib/array/ensureSize local.get $0 i32.load offset=4 - local.get $2 + local.get $3 i32.const 2 i32.shl i32.add local.get $1 i32.store local.get $0 - local.get $3 + local.get $2 i32.store offset=12 + local.get $2 ) (func $~lib/array/Array#pop (param $0 i32) (result i32) (local $1 i32) @@ -2560,7 +2605,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) + (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -2588,6 +2633,100 @@ local.get $0 local.get $2 i32.store offset=12 + 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.tee $1 + i32.const 1 + i32.lt_s + if + i32.const 1984 + i32.const 1088 + i32.const 361 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.tee $2 + i32.load + local.get $2 + local.get $2 + i32.const 4 + i32.add + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 2 + i32.shl + local.tee $4 + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.tee $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 $1 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.lt_u + if + local.get $2 + i32.load + local.set $3 + local.get $2 + local.get $1 + i32.load + i32.store + local.get $1 + local.get $3 + i32.store + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $1 + i32.const 4 + i32.sub + local.set $1 + br $while-continue|0 + end + end + end + local.get $0 + call $~lib/rt/pure/__retain ) (func $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -3038,7 +3177,8 @@ i32.shl i32.add i32.load - local.tee $3 + i32.const 3 + global.set $~argumentsLength local.get $2 local.get $0 local.get $1 @@ -3072,6 +3212,7 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push + drop local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -3121,7 +3262,8 @@ i32.shl i32.add i32.load - local.tee $3 + i32.const 3 + global.set $~argumentsLength local.get $2 local.get $0 local.get $1 @@ -3151,6 +3293,7 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push + drop local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -3205,7 +3348,8 @@ i32.shl i32.add i32.load - local.tee $3 + i32.const 3 + global.set $~argumentsLength local.get $2 local.get $0 local.get $1 @@ -3234,6 +3378,7 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push + drop local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -3292,7 +3437,8 @@ i32.shl i32.add i32.load - local.tee $3 + i32.const 3 + global.set $~argumentsLength local.get $2 local.get $0 local.get $1 @@ -3311,6 +3457,7 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push + drop local.get $0 global.get $std/array/i i32.add @@ -3366,6 +3513,7 @@ i32.const 100 i32.add call $~lib/array/Array#push + drop local.get $3 i32.const 1 i32.add @@ -3402,6 +3550,7 @@ i32.const 200 i32.add call $~lib/array/Array#push + drop local.get $3 i32.const 1 i32.add @@ -3433,6 +3582,65 @@ local.get $0 f32.convert_i32_s ) + (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.get $0 + i32.load offset=12 + local.tee $4 + i32.const 2 + i32.const 9 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + i32.load offset=4 + local.set $6 + loop $for-loop|0 + local.get $2 + local.get $4 + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $4 + local.get $3 + i32.lt_s + select + i32.lt_s + if + local.get $2 + i32.const 2 + i32.shl + local.tee $3 + local.get $0 + i32.load offset=4 + i32.add + i32.load + local.set $7 + i32.const 3 + global.set $~argumentsLength + local.get $3 + local.get $6 + i32.add + local.get $7 + local.get $2 + local.get $0 + local.get $1 + call_indirect (type $i32_i32_i32_=>_f32) + f32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $5 + ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) local.get $1 local.get $0 @@ -3460,6 +3668,7 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push + drop local.get $0 global.get $std/array/i i32.add @@ -3507,6 +3716,8 @@ i32.add i32.load local.set $7 + i32.const 3 + global.set $~argumentsLength local.get $3 local.get $6 i32.add @@ -3588,7 +3799,10 @@ i32.shl i32.add i32.load - local.tee $3 + local.set $3 + i32.const 3 + global.set $~argumentsLength + local.get $3 local.get $2 local.get $0 local.get $1 @@ -3597,6 +3811,7 @@ local.get $4 local.get $3 call $~lib/array/Array#push + drop end local.get $2 i32.const 1 @@ -3613,6 +3828,7 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push + drop local.get $0 global.get $std/array/i i32.add @@ -3675,7 +3891,6 @@ select i32.lt_s if - local.get $2 local.get $0 i32.load offset=4 local.get $3 @@ -3683,7 +3898,11 @@ i32.shl i32.add i32.load - local.tee $4 + local.set $4 + i32.const 4 + global.set $~argumentsLength + local.get $2 + local.get $4 local.get $3 local.get $0 local.get $1 @@ -3720,6 +3939,7 @@ local.tee $2 i32.const 1 call $~lib/array/Array#push + drop local.get $2 call $~lib/rt/pure/__release local.get $0 @@ -3751,7 +3971,6 @@ i32.const 0 i32.ge_s if - local.get $2 local.get $0 i32.load offset=4 local.get $3 @@ -3759,6 +3978,11 @@ 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 @@ -3871,14 +4095,92 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 f32) - (local $5 i32) - (local $6 f32) - (local $7 i32) - local.get $1 + (local $5 f32) + (local $6 i32) + loop $for-loop|0 + local.get $6 + local.get $1 + i32.lt_s + if + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $5 + local.get $6 + 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 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $4 + call $~lib/util/sort/COMPARATOR~anonymous|0 + i32.const 0 + i32.ge_s + br_if $while-break|1 + local.get $3 + local.tee $2 + i32.const 1 + i32.sub + local.set $3 + local.get $0 + local.get $2 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + f32.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 $5 + f32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 f32) + (local $7 i32) + local.get $1 i32.const 31 i32.add i32.const 5 @@ -3941,14 +4243,18 @@ i32.shl i32.add f32.load - local.tee $4 + local.set $4 local.get $0 local.get $3 i32.const 2 i32.shl i32.add f32.load - local.tee $6 + local.set $6 + i32.const 2 + global.set $~argumentsLength + local.get $4 + local.get $6 call $~lib/util/sort/COMPARATOR~anonymous|0 i32.const 0 i32.lt_s @@ -4053,14 +4359,18 @@ if local.get $0 f32.load - local.tee $4 + local.set $4 local.get $0 local.get $1 i32.const 2 i32.shl i32.add f32.load - local.tee $6 + local.set $6 + i32.const 2 + global.set $~argumentsLength + local.get $4 + local.get $6 call $~lib/util/sort/COMPARATOR~anonymous|0 i32.const 0 i32.lt_s @@ -4228,6 +4538,84 @@ call $~lib/rt/pure/__release i32.const 1 ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 i32) + loop $for-loop|0 + local.get $6 + local.get $1 + i32.lt_s + if + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $5 + local.get $6 + 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 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $4 + call $~lib/util/sort/COMPARATOR~anonymous|0 + i32.const 0 + i32.ge_s + br_if $while-break|1 + local.get $3 + local.tee $2 + i32.const 1 + i32.sub + local.set $3 + local.get $0 + local.get $2 + i32.const 1 + i32.add + i32.const 3 + i32.shl + i32.add + local.get $4 + f64.store + br $while-continue|1 + end + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.add + i32.const 3 + i32.shl + i32.add + local.get $5 + f64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -4298,14 +4686,18 @@ i32.shl i32.add f64.load - local.tee $4 + local.set $4 local.get $0 local.get $3 i32.const 3 i32.shl i32.add f64.load - local.tee $6 + local.set $6 + i32.const 2 + global.set $~argumentsLength + local.get $4 + local.get $6 call $~lib/util/sort/COMPARATOR~anonymous|0 i32.const 0 i32.lt_s @@ -4410,14 +4802,18 @@ if local.get $0 f64.load - local.tee $4 + local.set $4 local.get $0 local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $6 + local.set $6 + i32.const 2 + global.set $~argumentsLength + local.get $4 + local.get $6 call $~lib/util/sort/COMPARATOR~anonymous|0 i32.const 0 i32.lt_s @@ -4606,6 +5002,85 @@ call $~lib/rt/pure/__release 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 i32) + (local $6 i32) + (local $7 i32) + loop $for-loop|0 + local.get $7 + local.get $1 + i32.lt_s + if + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + local.get $7 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|1 + local.get $4 + i32.const 0 + i32.ge_s + if + block $while-break|1 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $6 + local.get $5 + local.get $2 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + br_if $while-break|1 + local.get $4 + local.tee $3 + i32.const 1 + i32.sub + local.set $4 + local.get $0 + local.get $3 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store + br $while-continue|1 + end + end + end + local.get $0 + local.get $4 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + 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) @@ -4676,17 +5151,21 @@ i32.shl i32.add i32.load - local.tee $3 + local.set $3 local.get $0 local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $6 - local.get $2 - call_indirect (type $i32_i32_=>_i32) - i32.const 0 + local.set $6 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $2 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 i32.lt_s if local.get $5 @@ -4789,14 +5268,18 @@ if local.get $0 i32.load - local.tee $3 + local.set $3 local.get $0 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $6 + local.set $6 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 local.get $2 call_indirect (type $i32_i32_=>_i32) i32.const 0 @@ -4863,10 +5346,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) local.get $0 i32.load offset=12 local.tee $3 @@ -4879,26 +5358,30 @@ end local.get $0 i32.load offset=4 - local.set $2 + local.set $4 local.get $3 i32.const 2 i32.eq if - local.get $2 + local.get $4 i32.load offset=4 - local.tee $3 - local.get $2 + local.set $3 + local.get $4 i32.load - local.tee $5 + local.set $2 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $2 local.get $1 call_indirect (type $i32_i32_=>_i32) i32.const 0 i32.lt_s if + local.get $4 local.get $2 - local.get $5 i32.store offset=4 - local.get $2 + local.get $4 local.get $3 i32.store end @@ -4907,84 +5390,17 @@ return end local.get $3 + local.tee $2 i32.const 256 i32.lt_s if - local.get $3 - local.set $5 + local.get $4 + local.get $2 local.get $1 - local.set $7 - loop $for-loop|0 - local.get $4 - local.get $5 - i32.lt_s - if - local.get $2 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - local.get $4 - i32.const 1 - i32.sub - local.set $1 - loop $while-continue|1 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $6 - local.get $2 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $8 - local.get $7 - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $1 - local.tee $3 - i32.const 1 - i32.sub - local.set $1 - local.get $2 - local.get $3 - 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 $2 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end + call $~lib/util/sort/insertionSort else + local.get $4 local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/weakHeapSort end @@ -4996,6 +5412,22 @@ local.get $1 i32.sub ) + (func $~lib/array/Array#sort@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 46 + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/array/Array#sort + ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 @@ -5008,6 +5440,7 @@ (func $std/array/createReverseOrderedArray (param $0 i32) (result i32) (local $1 i32) (local $2 i32) + i32.const 0 local.get $0 call $~lib/array/Array#constructor local.set $2 @@ -5077,6 +5510,7 @@ (func $std/array/createRandomOrderedArray (param $0 i32) (result i32) (local $1 i32) (local $2 i32) + i32.const 0 local.get $0 call $~lib/array/Array#constructor local.set $2 @@ -5135,6 +5569,8 @@ local.get $0 local.get $2 call $~lib/array/Array#__get + i32.const 2 + global.set $~argumentsLength local.get $1 call_indirect (type $i32_i32_=>_i32) i32.const 0 @@ -5301,6 +5737,7 @@ i32.const 2 i32.lt_s if + i32.const 0 i32.const 1 call $~lib/array/Array#constructor local.tee $0 @@ -5372,7 +5809,6 @@ i32.ge_s if block $while-break|1 - local.get $6 local.get $0 local.get $3 i32.const 2 @@ -5380,7 +5816,11 @@ i32.add i32.load call $~lib/rt/pure/__retain - local.tee $5 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $6 + local.get $5 local.get $2 call_indirect (type $i32_i32_=>_i32) i32.const 0 @@ -5453,11 +5893,15 @@ local.get $3 i32.load offset=4 call $~lib/rt/pure/__retain - local.tee $2 + local.set $2 local.get $3 i32.load call $~lib/rt/pure/__retain - local.tee $4 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + local.get $4 local.get $1 call_indirect (type $i32_i32_=>_i32) i32.const 0 @@ -5515,11 +5959,15 @@ i32.const 1 i32.sub call $~lib/array/Array#__get - local.tee $3 + local.set $3 local.get $0 local.get $2 call $~lib/array/Array#__get - local.tee $4 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $4 local.get $1 call_indirect (type $i32_i32_=>_i32) i32.const 0 @@ -8286,6 +8734,11 @@ i32.const 6304 call $~lib/rt/pure/__release ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 6304 + call $~lib/array/Array#join + ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 @@ -10260,14 +10713,14 @@ (local $17 i32) (local $18 i32) (local $19 i32) - (local $20 f32) + (local $20 i32) (local $21 i32) (local $22 i32) (local $23 i32) - (local $24 f64) + (local $24 i32) (local $25 i32) - (local $26 i32) - (local $27 i32) + (local $26 f32) + (local $27 f64) (local $28 i32) (local $29 i32) (local $30 i32) @@ -10303,6 +10756,7 @@ (local $60 i32) (local $61 i32) i32.const 0 + i32.const 0 call $~lib/array/Array#constructor global.set $std/array/arr i32.const 0 @@ -10350,13 +10804,13 @@ local.tee $0 local.get $2 i32.load - local.tee $4 + local.tee $5 i32.ne if local.get $0 call $~lib/rt/pure/__retain local.set $0 - local.get $4 + local.get $5 call $~lib/rt/pure/__release end local.get $2 @@ -10473,7 +10927,7 @@ i32.const 1632 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $5 call $std/array/isArraysEqual i32.eqz if @@ -10497,7 +10951,7 @@ i32.const 1664 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $10 call $std/array/isArraysEqual i32.eqz if @@ -10516,9 +10970,9 @@ call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $4 + local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $10 call $~lib/rt/pure/__release i32.const 5 i32.const 2 @@ -10614,7 +11068,7 @@ i32.const 1888 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $5 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10639,7 +11093,7 @@ i32.const 1936 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10659,9 +11113,9 @@ call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $4 + local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $10 call $~lib/rt/pure/__release global.get $std/array/arr i32.load offset=12 @@ -10686,6 +11140,7 @@ global.get $std/array/arr i32.const 42 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 0 call $~lib/array/Array#__get @@ -10760,6 +11215,7 @@ global.get $std/array/arr i32.const 43 call $~lib/array/Array#push + drop global.get $std/array/arr i32.load offset=12 i32.const 1 @@ -10800,6 +11256,7 @@ global.get $std/array/arr i32.const 44 call $~lib/array/Array#push + drop global.get $std/array/arr i32.load offset=12 i32.const 2 @@ -10853,6 +11310,7 @@ global.get $std/array/arr i32.const 45 call $~lib/array/Array#push + drop global.get $std/array/arr i32.load offset=12 i32.const 3 @@ -10979,6 +11437,7 @@ local.get $0 call $~lib/rt/pure/__release i32.const 0 + i32.const 0 call $~lib/array/Array#constructor local.set $1 global.get $std/array/arr @@ -11028,7 +11487,7 @@ i32.const 2032 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $5 call $~lib/array/Array#concat call $~lib/rt/pure/__release global.get $std/array/arr @@ -11085,9 +11544,11 @@ local.get $1 i32.const 46 call $~lib/array/Array#push + drop local.get $1 i32.const 47 call $~lib/array/Array#push + drop global.get $std/array/arr local.get $1 call $~lib/array/Array#concat @@ -11258,7 +11719,7 @@ call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $4 + local.get $5 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release @@ -11268,7 +11729,7 @@ i32.const 2064 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 + local.tee $0 i32.const 0 i32.const 3 i32.const 2147483647 @@ -11298,22 +11759,22 @@ i32.const 2160 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__release + local.set $1 local.get $0 + call $~lib/rt/pure/__release + local.get $1 i32.const 1 i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $4 + local.tee $5 i32.const 5 i32.const 2 i32.const 3 i32.const 2208 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11331,22 +11792,21 @@ i32.const 2256 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__release local.get $1 + call $~lib/rt/pure/__release + local.tee $1 i32.const 1 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $13 + local.tee $20 i32.const 5 i32.const 2 i32.const 3 i32.const 2304 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $25 + local.tee $6 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11371,14 +11831,14 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $6 + local.tee $8 i32.const 5 i32.const 2 i32.const 3 i32.const 2400 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11410,7 +11870,7 @@ i32.const 2496 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $10 + local.tee $11 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11435,7 +11895,7 @@ i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $28 + local.tee $13 i32.const 5 i32.const 2 i32.const 3 @@ -11467,7 +11927,7 @@ i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $15 + local.tee $28 i32.const 5 i32.const 2 i32.const 3 @@ -11531,7 +11991,7 @@ i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.tee $12 + local.tee $15 i32.const 5 i32.const 2 i32.const 3 @@ -11556,9 +12016,10 @@ i32.const 2928 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain + local.set $0 local.get $1 call $~lib/rt/pure/__release - local.tee $1 + local.get $0 i32.const -4 i32.const -3 i32.const -2 @@ -11588,10 +12049,10 @@ i32.const 3024 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__release + local.set $1 local.get $0 + call $~lib/rt/pure/__release + local.get $1 i32.const -4 i32.const -3 i32.const -1 @@ -11603,7 +12064,7 @@ i32.const 3072 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $26 + local.tee $24 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11621,22 +12082,22 @@ i32.const 3120 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__release + local.set $0 local.get $1 + call $~lib/rt/pure/__release + local.get $0 i32.const -4 i32.const -3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 3 i32.const 3168 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $27 + local.tee $25 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11648,33 +12109,33 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $9 + local.get $5 call $~lib/rt/pure/__release - local.get $13 + local.get $10 call $~lib/rt/pure/__release - local.get $25 + local.get $20 call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $10 + local.get $11 call $~lib/rt/pure/__release - local.get $28 + local.get $13 call $~lib/rt/pure/__release local.get $14 call $~lib/rt/pure/__release - local.get $15 + local.get $28 call $~lib/rt/pure/__release local.get $16 call $~lib/rt/pure/__release @@ -11682,7 +12143,7 @@ call $~lib/rt/pure/__release local.get $18 call $~lib/rt/pure/__release - local.get $12 + local.get $15 call $~lib/rt/pure/__release local.get $21 call $~lib/rt/pure/__release @@ -11692,15 +12153,16 @@ call $~lib/rt/pure/__release local.get $23 call $~lib/rt/pure/__release - local.get $26 + local.get $24 call $~lib/rt/pure/__release - local.get $0 + local.get $1 call $~lib/rt/pure/__release - local.get $27 + local.get $25 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 42 call $~lib/array/Array#unshift + drop global.get $std/array/arr i32.load offset=12 i32.const 4 @@ -11780,6 +12242,7 @@ global.get $std/array/arr i32.const 41 call $~lib/array/Array#unshift + drop global.get $std/array/arr i32.load offset=12 i32.const 5 @@ -11870,47 +12333,11 @@ unreachable end global.get $std/array/arr - local.tee $1 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.lt_s - if - i32.const 1984 - i32.const 1088 - i32.const 361 - i32.const 21 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=4 - local.tee $0 - i32.load - local.get $0 - local.get $0 - i32.const 4 - i32.add - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 2 - i32.shl - local.tee $4 - call $~lib/memory/memory.copy - local.get $0 - local.get $4 - i32.add - i32.const 0 - i32.store - local.get $1 - local.get $2 - i32.store offset=12 - global.set $std/array/i - global.get $std/array/i - i32.const 41 - i32.ne + call $~lib/array/Array#shift + global.set $std/array/i + global.get $std/array/i + i32.const 41 + i32.ne if i32.const 0 i32.const 1296 @@ -12073,49 +12500,8 @@ unreachable end global.get $std/array/arr - local.tee $1 - i32.load offset=12 - local.tee $2 - if - local.get $1 - i32.load offset=4 - local.set $0 - local.get $1 - i32.load offset=4 - local.get $2 - i32.const 1 - i32.sub - i32.const 2 - i32.shl - i32.add - local.set $2 - loop $while-continue|0 - local.get $0 - local.get $2 - i32.lt_u - if - local.get $0 - i32.load - local.set $1 - local.get $0 - local.get $2 - i32.load - i32.store - local.get $2 - local.get $1 - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - br $while-continue|0 - end - end - end + call $~lib/array/Array#reverse + call $~lib/rt/pure/__release global.get $std/array/arr i32.load offset=12 i32.const 3 @@ -12182,9 +12568,11 @@ global.get $std/array/arr i32.const 43 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 44 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 44 i32.const 0 @@ -12350,7 +12738,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $1 - local.set $4 + local.set $5 i32.const 0 local.set $0 block $__inlined_func$~lib/array/Array#indexOf @@ -12369,10 +12757,10 @@ local.set $0 br $__inlined_func$~lib/array/Array#indexOf end - local.get $4 + local.get $5 i32.load offset=4 local.set $3 - loop $while-continue|019 + loop $while-continue|0 local.get $0 local.get $2 i32.lt_s @@ -12390,7 +12778,7 @@ i32.const 1 i32.add local.set $0 - br $while-continue|019 + br $while-continue|0 end end i32.const -1 @@ -12414,7 +12802,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $2 - local.set $9 + local.set $10 i32.const 0 local.set $0 block $__inlined_func$~lib/array/Array#indexOf @@ -12433,15 +12821,15 @@ local.set $0 br $__inlined_func$~lib/array/Array#indexOf end - local.get $9 + local.get $10 i32.load offset=4 - local.set $4 - loop $while-continue|020 + local.set $5 + loop $while-continue|019 local.get $0 local.get $3 i32.lt_s if - local.get $4 + local.get $5 local.get $0 i32.const 3 i32.shl @@ -12454,7 +12842,7 @@ i32.const 1 i32.add local.set $0 - br $while-continue|020 + br $while-continue|019 end end i32.const -1 @@ -12621,41 +13009,41 @@ i32.const 3280 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 - i32.load offset=12 local.tee $2 + i32.load offset=12 + local.tee $3 if (result i32) i32.const 0 - local.get $2 + local.get $3 i32.ge_s else i32.const 1 end br_if $__inlined_func$~lib/array/Array#includes drop - local.get $3 + local.get $2 i32.load offset=4 - local.set $9 - loop $while-continue|021 + local.set $10 + loop $while-continue|020 local.get $0 - local.get $2 + local.get $3 i32.lt_s if i32.const 1 - local.get $9 + local.get $10 local.get $0 i32.const 2 i32.shl i32.add f32.load - local.tee $20 + local.tee $26 f32.const nan:0x400000 f32.eq if (result i32) i32.const 1 else - local.get $20 - local.get $20 + local.get $26 + local.get $26 f32.ne end br_if $__inlined_func$~lib/array/Array#includes @@ -12664,7 +13052,7 @@ i32.const 1 i32.add local.set $0 - br $while-continue|021 + br $while-continue|020 end end i32.const 0 @@ -12680,7 +13068,7 @@ end block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $2 + local.set $0 i32.const 0 i32.const 1 i32.const 3 @@ -12688,50 +13076,50 @@ i32.const 3312 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 + local.tee $3 i32.load offset=12 - local.tee $4 + local.tee $5 if (result i32) i32.const 0 - local.get $4 + local.get $5 i32.ge_s else i32.const 1 end br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $3 i32.load offset=4 - local.set $13 - loop $while-continue|022 - local.get $2 - local.get $4 + local.set $20 + loop $while-continue|021 + local.get $0 + local.get $5 i32.lt_s if i32.const 1 - local.get $13 - local.get $2 + local.get $20 + local.get $0 i32.const 3 i32.shl i32.add f64.load - local.tee $24 + local.tee $27 f64.const nan:0x8000000000000 f64.eq if (result i32) i32.const 1 else - local.get $24 - local.get $24 + local.get $27 + local.get $27 f64.ne end br_if $__inlined_func$~lib/array/Array#includes drop - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 - br $while-continue|022 + local.set $0 + br $while-continue|021 end end i32.const 0 @@ -12800,9 +13188,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 call $~lib/rt/pure/__release - local.get $1 + local.get $3 call $~lib/rt/pure/__release i32.const 5 i32.const 2 @@ -12821,7 +13209,7 @@ i32.const 3392 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $6 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12840,7 +13228,7 @@ i32.const 3440 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12865,7 +13253,7 @@ i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.tee $8 + local.tee $9 i32.const 0 i32.const 2 i32.const 3 @@ -12891,7 +13279,7 @@ i32.const 3520 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $10 + local.tee $11 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12916,14 +13304,14 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#splice - local.tee $14 + local.tee $13 i32.const 3 i32.const 2 i32.const 3 i32.const 3616 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $15 + local.tee $14 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12960,10 +13348,10 @@ i32.const 3680 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $0 + local.set $2 local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 i32.const 2 i32.const 2 call $~lib/array/Array#splice @@ -12986,14 +13374,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 3 i32.const 2 i32.const 3 i32.const 3760 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $12 + local.tee $15 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13011,9 +13399,10 @@ i32.const 3792 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release - local.tee $0 + local.get $0 i32.const 0 i32.const 1 call $~lib/array/Array#splice @@ -13074,7 +13463,7 @@ i32.const 3952 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $26 + local.tee $24 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13093,7 +13482,7 @@ i32.const 3984 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $27 + local.tee $25 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13361,10 +13750,9 @@ i32.const 4576 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $1 local.get $0 call $~lib/rt/pure/__release - local.get $1 + local.tee $0 i32.const 4 i32.const 0 call $~lib/array/Array#splice @@ -13387,7 +13775,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 5 i32.const 2 i32.const 3 @@ -13412,10 +13800,10 @@ i32.const 4688 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__release + local.set $1 local.get $0 + call $~lib/rt/pure/__release + local.get $1 i32.const 7 i32.const 0 call $~lib/array/Array#splice @@ -13438,7 +13826,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 2 i32.const 3 @@ -13463,10 +13851,10 @@ i32.const 4800 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - call $~lib/rt/pure/__release + local.set $2 local.get $1 + call $~lib/rt/pure/__release + local.get $2 i32.const 7 i32.const 5 call $~lib/array/Array#splice @@ -13489,7 +13877,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 5 i32.const 2 i32.const 3 @@ -13514,10 +13902,10 @@ i32.const 4912 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $2 + local.tee $1 i32.const 1 call $~lib/array/Array#splice - local.tee $13 + local.tee $10 i32.load offset=12 if i32.const 0 @@ -13527,7 +13915,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.load offset=12 if i32.const 0 @@ -13543,7 +13931,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $5 i32.load offset=4 local.tee $0 i32.const 1 @@ -13565,15 +13953,15 @@ i32.const 5 call $std/array/Ref#constructor i32.store offset=16 - local.get $2 + local.get $1 call $~lib/rt/pure/__release - local.get $9 + local.get $5 i32.const 2 call $~lib/array/Array#splice - local.set $25 - local.get $13 + local.set $20 + local.get $10 call $~lib/rt/pure/__release - local.get $25 + local.get $20 i32.load offset=12 i32.const 2 i32.ne @@ -13585,7 +13973,7 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $20 i32.const 0 call $~lib/array/Array#__get local.tee $55 @@ -13600,7 +13988,7 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $20 i32.const 1 call $~lib/array/Array#__get local.tee $56 @@ -13615,7 +14003,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $5 i32.load offset=12 i32.const 3 i32.ne @@ -13627,7 +14015,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $5 i32.const 0 call $~lib/array/Array#__get local.tee $57 @@ -13642,7 +14030,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $5 i32.const 1 call $~lib/array/Array#__get local.tee $58 @@ -13657,7 +14045,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $5 i32.const 2 call $~lib/array/Array#__get local.tee $59 @@ -13678,7 +14066,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $13 + local.tee $10 i32.load offset=4 local.tee $0 i32.const 1 @@ -13691,7 +14079,7 @@ i32.const 2 call $std/array/Ref#constructor i32.store offset=8 - local.get $13 + local.get $10 call $~lib/array/Array#splice local.tee $28 i32.load offset=12 @@ -13730,7 +14118,7 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $10 i32.load offset=12 i32.const 2 i32.ne @@ -13742,7 +14130,7 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $10 i32.const 0 call $~lib/array/Array#__get local.tee $60 @@ -13754,11 +14142,11 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $10 i32.const 1 call $~lib/array/Array#__get - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.eqz if i32.const 0 @@ -13779,23 +14167,23 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $10 + local.get $11 call $~lib/rt/pure/__release - local.get $14 + local.get $13 call $~lib/rt/pure/__release - local.get $15 + local.get $14 call $~lib/rt/pure/__release local.get $16 call $~lib/rt/pure/__release @@ -13803,7 +14191,7 @@ call $~lib/rt/pure/__release local.get $18 call $~lib/rt/pure/__release - local.get $12 + local.get $15 call $~lib/rt/pure/__release local.get $21 call $~lib/rt/pure/__release @@ -13813,9 +14201,9 @@ call $~lib/rt/pure/__release local.get $23 call $~lib/rt/pure/__release - local.get $26 + local.get $24 call $~lib/rt/pure/__release - local.get $27 + local.get $25 call $~lib/rt/pure/__release local.get $29 call $~lib/rt/pure/__release @@ -13879,7 +14267,7 @@ call $~lib/rt/pure/__release local.get $60 call $~lib/rt/pure/__release - local.get $2 + local.get $1 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 0 @@ -14024,9 +14412,11 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 7 call $~lib/array/Array#every @@ -14127,9 +14517,11 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 12 call $~lib/array/Array#some @@ -14228,9 +14620,11 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push + drop i32.const 0 global.set $std/array/i global.get $std/array/arr @@ -14334,9 +14728,11 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 21 call $~lib/array/Array#forEach @@ -14353,81 +14749,40 @@ unreachable end loop $for-loop|0 - local.get $5 + local.get $4 i32.const 100 i32.lt_s if global.get $std/array/arr call $~lib/array/Array#pop drop - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|0 end end global.get $std/array/arr i32.const 0 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 1 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push - i32.const 0 - local.set $0 + drop global.get $std/array/arr - local.tee $2 - i32.load offset=12 - local.tee $3 - i32.const 2 - i32.const 9 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $1 - i32.load offset=4 - local.set $4 - loop $for-loop|040 - local.get $0 - local.get $3 - local.get $2 - i32.load offset=12 - local.tee $5 - local.get $3 - local.get $5 - i32.lt_s - select - i32.lt_s - if - local.get $0 - i32.const 2 - i32.shl - local.tee $5 - local.get $2 - i32.load offset=4 - i32.add - i32.load - f32.convert_i32_s - local.set $20 - local.get $4 - local.get $5 - i32.add - local.get $20 - f32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|040 - end - end - local.get $1 + i32.const 22 + call $~lib/array/Array#map + local.tee $0 i32.load offset=12 i32.const 4 i32.ne @@ -14439,7 +14794,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get global.get $std/array/arr @@ -14545,10 +14900,12 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push - local.get $1 + drop + local.get $0 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 26 @@ -14655,9 +15012,11 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push + drop local.get $0 call $~lib/rt/pure/__release global.get $std/array/arr @@ -14807,9 +15166,11 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 37 i32.const 0 @@ -14955,146 +15316,91 @@ global.get $std/array/arr i32.const 0 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 1 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push + drop call $~lib/bindings/Math/random i64.reinterpret_f64 call $~lib/math/NativeMath.seedRandom + i32.const 8 + i32.const 2 + i32.const 9 + i32.const 5280 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $0 + i32.const 0 + global.set $~argumentsLength block $__inlined_func$~lib/array/Array#sort (result i32) - i32.const 8 - i32.const 2 - i32.const 9 - i32.const 5280 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $4 + local.get $0 i32.load offset=12 - local.tee $5 + local.tee $4 i32.const 1 i32.le_s if - local.get $4 + local.get $0 call $~lib/rt/pure/__retain br $__inlined_func$~lib/array/Array#sort end - local.get $4 + local.get $0 i32.load offset=4 - local.set $3 - local.get $5 + local.set $1 + local.get $4 i32.const 2 i32.eq if - local.get $3 + local.get $1 f32.load offset=4 - local.tee $20 - local.get $3 + local.set $26 + local.get $1 f32.load - local.tee $34 + local.set $34 + i32.const 2 + global.set $~argumentsLength + local.get $26 + local.get $34 call $~lib/util/sort/COMPARATOR~anonymous|0 i32.const 0 i32.lt_s if - local.get $3 + local.get $1 local.get $34 f32.store offset=4 - local.get $3 - local.get $20 + local.get $1 + local.get $26 f32.store end - local.get $4 + local.get $0 call $~lib/rt/pure/__retain br $__inlined_func$~lib/array/Array#sort end - local.get $5 + local.get $4 i32.const 256 i32.lt_s if - i32.const 0 - local.set $2 - loop $for-loop|02 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $20 - local.get $2 - i32.const 1 - i32.sub - local.set $0 - loop $while-continue|1 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $20 - local.get $3 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $34 - call $~lib/util/sort/COMPARATOR~anonymous|0 - i32.const 0 - i32.lt_s - if - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $34 - f32.store - br $while-continue|1 - end - end - end - local.get $3 - local.get $0 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $20 - f32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|02 - end - end + local.get $1 + local.get $4 + call $~lib/util/sort/insertionSort else - local.get $3 - local.get $5 + local.get $1 + local.get $4 call $~lib/util/sort/weakHeapSort end - local.get $4 + local.get $0 call $~lib/rt/pure/__retain end call $~lib/rt/pure/__release - local.get $4 + local.get $0 i32.const 8 i32.const 2 i32.const 9 @@ -15112,141 +15418,82 @@ call $~lib/builtins/abort unreachable end + i32.const 8 + i32.const 3 + i32.const 10 + i32.const 5376 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $1 + i32.const 0 + global.set $~argumentsLength block $__inlined_func$~lib/array/Array#sort (result i32) - i32.const 8 - i32.const 3 - i32.const 10 - i32.const 5376 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 + local.get $1 i32.load offset=12 - local.tee $6 + local.tee $2 i32.const 1 i32.le_s if - local.get $5 + local.get $1 call $~lib/rt/pure/__retain br $__inlined_func$~lib/array/Array#sort end - local.get $5 + local.get $1 i32.load offset=4 - local.set $3 - local.get $6 + local.set $4 + local.get $2 i32.const 2 i32.eq if - local.get $3 + local.get $4 f64.load offset=8 - local.tee $24 - local.get $3 + local.set $27 + local.get $4 f64.load - local.tee $35 + local.set $35 + i32.const 2 + global.set $~argumentsLength + local.get $27 + local.get $35 call $~lib/util/sort/COMPARATOR~anonymous|0 i32.const 0 i32.lt_s if - local.get $3 + local.get $4 local.get $35 f64.store offset=8 - local.get $3 - local.get $24 + local.get $4 + local.get $27 f64.store end - local.get $5 + local.get $1 call $~lib/rt/pure/__retain br $__inlined_func$~lib/array/Array#sort end - local.get $6 + local.get $2 i32.const 256 i32.lt_s if - i32.const 0 - local.set $2 - loop $for-loop|03 - local.get $2 - local.get $6 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $24 - local.get $2 - i32.const 1 - i32.sub - local.set $0 - loop $while-continue|14 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $24 - local.get $3 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $35 - call $~lib/util/sort/COMPARATOR~anonymous|0 - i32.const 0 - i32.lt_s - if - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $35 - f64.store - br $while-continue|14 - end - end - end - local.get $3 - local.get $0 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $24 - f64.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|03 - end - end + local.get $4 + local.get $2 + call $~lib/util/sort/insertionSort else - local.get $3 - local.get $6 + local.get $4 + local.get $2 call $~lib/util/sort/weakHeapSort end - local.get $5 + local.get $1 call $~lib/rt/pure/__retain end call $~lib/rt/pure/__release - local.get $5 + local.get $1 i32.const 8 i32.const 3 i32.const 10 i32.const 5456 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $12 + local.tee $15 call $std/array/isArraysEqual i32.eqz if @@ -15263,11 +15510,14 @@ i32.const 5536 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $14 - i32.const 46 - call $~lib/array/Array#sort + local.set $2 + i32.const 0 + global.set $~argumentsLength + local.get $2 + i32.const 0 + call $~lib/array/Array#sort@varargs call $~lib/rt/pure/__release - local.get $14 + local.get $2 i32.const 5 i32.const 2 i32.const 3 @@ -15292,11 +15542,14 @@ i32.const 5632 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $15 - i32.const 47 + local.set $3 + i32.const 0 + global.set $~argumentsLength + local.get $3 + i32.const 47 call $~lib/array/Array#sort call $~lib/rt/pure/__release - local.get $15 + local.get $3 i32.const 5 i32.const 2 i32.const 7 @@ -15328,48 +15581,48 @@ i32.const 5744 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $1 + local.set $6 i32.const 2 i32.const 2 i32.const 3 i32.const 5776 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $2 + local.set $8 i32.const 4 i32.const 2 i32.const 3 i32.const 5808 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $3 + local.set $9 i32.const 4 i32.const 2 i32.const 3 i32.const 5840 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $0 + local.set $4 i32.const 64 call $std/array/createReverseOrderedArray - local.set $6 + local.set $7 i32.const 128 call $std/array/createReverseOrderedArray - local.set $8 + local.set $11 i32.const 1024 call $std/array/createReverseOrderedArray - local.set $7 + local.set $13 i32.const 10000 call $std/array/createReverseOrderedArray - local.set $10 + local.set $14 i32.const 512 call $std/array/createRandomOrderedArray local.set $17 local.get $16 call $std/array/assertSortedDefault - local.get $1 + local.get $6 call $std/array/assertSortedDefault - local.get $1 + local.get $6 i32.const 1 i32.const 2 i32.const 3 @@ -15388,9 +15641,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $8 call $std/array/assertSortedDefault - local.get $2 + local.get $8 i32.const 2 i32.const 2 i32.const 3 @@ -15409,10 +15662,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $9 call $std/array/assertSortedDefault - local.get $3 - local.get $0 + local.get $9 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15424,10 +15677,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $7 call $std/array/assertSortedDefault - local.get $6 - local.get $0 + local.get $7 + local.get $4 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -15439,10 +15692,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 call $std/array/assertSortedDefault - local.get $8 - local.get $0 + local.get $11 + local.get $4 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -15454,10 +15707,10 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $13 call $std/array/assertSortedDefault - local.get $7 - local.get $0 + local.get $13 + local.get $4 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -15469,10 +15722,10 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $14 call $std/array/assertSortedDefault - local.get $10 - local.get $0 + local.get $14 + local.get $4 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -15486,39 +15739,39 @@ end local.get $17 call $std/array/assertSortedDefault - local.get $4 + local.get $0 call $~lib/rt/pure/__release local.get $18 call $~lib/rt/pure/__release - local.get $5 + local.get $1 call $~lib/rt/pure/__release - local.get $12 + local.get $15 call $~lib/rt/pure/__release - local.get $14 + local.get $2 call $~lib/rt/pure/__release local.get $21 call $~lib/rt/pure/__release - local.get $15 + local.get $3 call $~lib/rt/pure/__release local.get $19 call $~lib/rt/pure/__release local.get $16 call $~lib/rt/pure/__release - local.get $1 + local.get $6 call $~lib/rt/pure/__release - local.get $2 + local.get $8 call $~lib/rt/pure/__release - local.get $3 + local.get $9 call $~lib/rt/pure/__release - local.get $0 + local.get $4 call $~lib/rt/pure/__release - local.get $6 + local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $11 call $~lib/rt/pure/__release - local.get $7 + local.get $13 call $~lib/rt/pure/__release - local.get $10 + local.get $14 call $~lib/rt/pure/__release local.get $17 call $~lib/rt/pure/__release @@ -15566,23 +15819,25 @@ i32.const 6080 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $5 + local.set $6 i32.const 7 i32.const 2 i32.const 15 i32.const 6128 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $8 + local.set $9 + i32.const 1 + global.set $~argumentsLength block $__inlined_func$std/array/isSorted<~lib/string/String | null> (result i32) i32.const 1 local.set $2 - local.get $5 + local.get $6 call $~lib/rt/pure/__retain - local.tee $4 + local.tee $3 i32.const 55 call $~lib/array/Array<~lib/array/Array>#sort - local.tee $6 + local.tee $8 call $~lib/rt/pure/__retain local.tee $0 i32.load offset=12 @@ -15597,11 +15852,15 @@ i32.const 1 i32.sub call $~lib/array/Array#__get - local.tee $1 + local.set $1 local.get $0 local.get $2 call $~lib/array/Array#__get - local.tee $3 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $1 + local.get $4 call $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 i32.const 0 i32.gt_s @@ -15610,14 +15869,14 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $4 call $~lib/rt/pure/__release i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String | null> end local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $4 call $~lib/rt/pure/__release local.get $2 i32.const 1 @@ -15639,12 +15898,12 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 call $~lib/rt/pure/__release - local.get $4 + local.get $3 call $~lib/rt/pure/__release - local.get $5 - local.get $8 + local.get $6 + local.get $9 call $std/array/isArraysEqual<~lib/string/String | null> i32.eqz if @@ -15656,7 +15915,7 @@ unreachable end i32.const 0 - local.set $0 + local.set $4 i32.const 16 i32.const 16 call $~lib/rt/tlsf/__alloc @@ -15676,29 +15935,29 @@ i32.const 1600 i32.const 0 call $~lib/rt/tlsf/__alloc - local.tee $2 + local.tee $0 i32.const 0 i32.const 1600 call $~lib/memory/memory.fill - local.get $2 - local.set $3 - local.get $2 + local.get $0 + local.set $2 + local.get $0 local.get $1 i32.load - local.tee $4 + local.tee $3 i32.ne if - local.get $3 + local.get $2 call $~lib/rt/pure/__retain - local.set $3 - local.get $4 + local.set $2 + local.get $3 call $~lib/rt/pure/__release end local.get $1 - local.get $3 + local.get $2 i32.store local.get $1 - local.get $2 + local.get $0 i32.store offset=4 local.get $1 i32.const 1600 @@ -15706,24 +15965,24 @@ local.get $1 i32.const 400 i32.store offset=12 - loop $for-loop|09 - local.get $0 + loop $for-loop|06 + local.get $4 i32.const 400 i32.lt_s if - local.get $0 - local.set $3 + local.get $4 + local.set $2 call $~lib/math/NativeMath.random f64.const 32 f64.mul i32.trunc_f64_s local.set $7 i32.const 0 - local.set $6 + local.set $8 i32.const 6064 local.set $0 loop $for-loop|01 - local.get $6 + local.get $8 local.get $7 i32.lt_s if @@ -15736,7 +15995,7 @@ f64.mul f64.floor i32.trunc_f64_s - local.tee $2 + local.tee $4 i32.const 5088 call $~lib/string/String#get:length i32.ge_u @@ -15745,63 +16004,65 @@ i32.const 2 i32.const 1 call $~lib/rt/tlsf/__alloc - local.tee $4 - local.get $2 + local.tee $3 + local.get $4 i32.const 1 i32.shl i32.const 5088 i32.add i32.load16_u i32.store16 - local.get $4 + local.get $3 call $~lib/rt/pure/__retain end - local.set $2 + local.set $4 local.get $0 - local.tee $4 + local.tee $3 local.get $0 - local.get $2 + local.get $4 call $~lib/string/String.__concat - local.tee $10 + local.tee $11 local.tee $0 i32.ne if local.get $0 call $~lib/rt/pure/__retain local.set $0 - local.get $4 + local.get $3 call $~lib/rt/pure/__release end - local.get $2 + local.get $4 call $~lib/rt/pure/__release - local.get $10 + local.get $11 call $~lib/rt/pure/__release - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|01 end end local.get $1 - local.get $3 + local.get $2 local.get $0 call $~lib/array/Array<~lib/array/Array>#__set local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|09 + local.set $4 + br $for-loop|06 end end + i32.const 1 + global.set $~argumentsLength local.get $1 i32.const 56 call $std/array/assertSorted<~lib/array/Array> - local.get $5 + local.get $6 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release @@ -15837,10 +16098,10 @@ i32.const 6384 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $8 i32.const 6064 call $~lib/array/Array#join - local.tee $8 + local.tee $9 i32.const 6736 call $~lib/string/String.__eq i32.eqz @@ -15861,7 +16122,7 @@ local.tee $7 i32.const 6800 call $~lib/array/Array#join - local.tee $10 + local.tee $11 i32.const 6736 call $~lib/string/String.__eq i32.eqz @@ -15879,10 +16140,10 @@ i32.const 6832 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $14 + local.tee $13 i32.const 6864 call $~lib/array/Array#join - local.tee $15 + local.tee $14 i32.const 6896 call $~lib/string/String.__eq i32.eqz @@ -15900,15 +16161,15 @@ i32.const 6960 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $2 + local.tee $4 i32.load offset=4 - local.get $2 + local.get $4 i32.load offset=12 call $~lib/util/string/joinFloatArray - local.set $3 + local.set $2 i32.const 7024 call $~lib/rt/pure/__release - local.get $3 + local.get $2 i32.const 8112 call $~lib/string/String.__eq i32.eqz @@ -15947,20 +16208,20 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $3 i32.load offset=4 - local.tee $5 + local.tee $6 i32.const 0 call $std/array/Ref#constructor i32.store - local.get $5 + local.get $6 i32.const 0 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 call $std/array/Ref#constructor i32.store offset=8 - local.get $4 + local.get $3 call $~lib/array/Array#join local.tee $18 i32.const 8320 @@ -15980,19 +16241,19 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $6 i32.load offset=4 - local.tee $12 + local.tee $15 i32.const 0 call $std/array/Ref#constructor i32.store - local.get $12 + local.get $15 i32.const 0 call $std/array/Ref#constructor i32.store offset=4 - local.get $5 + local.get $6 call $~lib/array/Array#join - local.tee $12 + local.tee $15 i32.const 8400 call $~lib/string/String.__eq i32.eqz @@ -16008,33 +16269,33 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $10 + local.get $11 + call $~lib/rt/pure/__release + local.get $13 call $~lib/rt/pure/__release local.get $14 call $~lib/rt/pure/__release - local.get $15 + local.get $4 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release local.get $16 call $~lib/rt/pure/__release local.get $17 call $~lib/rt/pure/__release - local.get $4 + local.get $3 call $~lib/rt/pure/__release local.get $18 call $~lib/rt/pure/__release - local.get $5 + local.get $6 call $~lib/rt/pure/__release - local.get $12 + local.get $15 call $~lib/rt/pure/__release i32.const 0 i32.const 2 @@ -16042,29 +16303,29 @@ i32.const 8480 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $3 + local.set $2 i32.const 1 i32.const 2 i32.const 3 i32.const 8496 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $4 + local.set $3 i32.const 2 i32.const 2 i32.const 3 i32.const 8528 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $5 + local.set $6 i32.const 4 i32.const 2 i32.const 3 i32.const 8560 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $6 - local.get $3 + local.set $8 + local.get $2 i32.const 6304 call $~lib/array/Array#join local.tee $0 @@ -16080,7 +16341,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const 6304 call $~lib/array/Array#join local.tee $0 @@ -16097,11 +16358,11 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $6 i32.const 6304 call $~lib/array/Array#join local.tee $0 - local.set $26 + local.set $24 local.get $0 i32.const 8592 call $~lib/string/String.__eq @@ -16114,11 +16375,11 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $8 i32.const 6304 call $~lib/array/Array#join local.tee $0 - local.set $27 + local.set $25 local.get $0 i32.const 8624 call $~lib/string/String.__eq @@ -16137,9 +16398,9 @@ i32.const 8656 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $9 i32.load offset=4 - local.get $8 + local.get $9 i32.load offset=12 call $~lib/util/string/joinIntegerArray local.set $7 @@ -16163,15 +16424,15 @@ i32.const 8720 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $10 + local.tee $11 i32.load offset=4 - local.get $10 + local.get $11 i32.load offset=12 call $~lib/util/string/joinIntegerArray - local.set $14 + local.set $13 i32.const 6304 call $~lib/rt/pure/__release - local.get $14 + local.get $13 i32.const 8752 call $~lib/string/String.__eq i32.eqz @@ -16189,9 +16450,9 @@ i32.const 8800 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $15 + local.tee $14 i32.load offset=4 - local.get $15 + local.get $14 i32.load offset=12 call $~lib/util/string/joinIntegerArray local.set $16 @@ -16310,10 +16571,10 @@ local.get $0 i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array> - local.set $12 + local.set $15 i32.const 6304 call $~lib/rt/pure/__release - local.get $12 + local.get $15 i32.const 9360 call $~lib/string/String.__eq i32.eqz @@ -16333,7 +16594,7 @@ call $~lib/rt/pure/__retain local.tee $1 i32.load offset=4 - local.tee $2 + local.tee $4 i32.const 2 i32.const 0 i32.const 6 @@ -16341,7 +16602,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $2 + local.get $4 i32.const 2 i32.const 0 i32.const 6 @@ -16375,7 +16636,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $2 + local.tee $4 i32.load offset=4 i32.const 1 i32.const 2 @@ -16394,9 +16655,9 @@ i32.store local.get $33 i32.store - local.get $2 + local.get $4 i32.load offset=4 - local.get $2 + local.get $4 i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> local.set $19 @@ -16414,30 +16675,30 @@ call $~lib/builtins/abort unreachable end - local.get $3 - call $~lib/rt/pure/__release - local.get $4 + local.get $2 call $~lib/rt/pure/__release - local.get $5 + local.get $3 call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release call $~lib/rt/pure/__release local.get $23 call $~lib/rt/pure/__release - local.get $26 + local.get $24 call $~lib/rt/pure/__release - local.get $27 + local.get $25 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $10 + local.get $11 call $~lib/rt/pure/__release - local.get $14 + local.get $13 call $~lib/rt/pure/__release - local.get $15 + local.get $14 call $~lib/rt/pure/__release local.get $16 call $~lib/rt/pure/__release @@ -16453,7 +16714,7 @@ call $~lib/rt/pure/__release local.get $32 call $~lib/rt/pure/__release - local.get $12 + local.get $15 call $~lib/rt/pure/__release local.get $21 call $~lib/rt/pure/__release @@ -16467,9 +16728,9 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $6 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.const 2 i32.const 3 @@ -16477,7 +16738,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $3 + local.get $2 i32.const 3 i32.const 2 i32.const 3 @@ -16485,7 +16746,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 - local.get $3 + local.get $2 i32.const 3 i32.const 2 i32.const 3 @@ -16493,7 +16754,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=8 - local.get $3 + local.get $2 i32.const 3 i32.const 2 i32.const 3 @@ -16501,9 +16762,9 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=12 - local.get $5 + local.get $6 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $6 + local.tee $8 i32.load offset=12 i32.const 10 i32.ne @@ -16516,14 +16777,14 @@ unreachable end loop $for-loop|1 - local.get $11 + local.get $12 i32.const 10 i32.lt_s if - local.get $6 - local.get $11 + local.get $8 + local.get $12 call $~lib/array/Array#__get - local.get $11 + local.get $12 i32.ne if i32.const 0 @@ -16533,10 +16794,10 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $12 i32.const 1 i32.add - local.set $11 + local.set $12 br $for-loop|1 end end @@ -16546,9 +16807,9 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $9 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.const 2 i32.const 15 @@ -16556,7 +16817,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $3 + local.get $2 i32.const 3 i32.const 2 i32.const 15 @@ -16564,7 +16825,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 - local.get $3 + local.get $2 i32.const 3 i32.const 2 i32.const 15 @@ -16572,7 +16833,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=8 - local.get $3 + local.get $2 i32.const 1 i32.const 2 i32.const 15 @@ -16580,17 +16841,17 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=12 - local.get $8 + local.get $9 call $~lib/array/Array<~lib/array/Array<~lib/string/String | null>>#flat - local.set $3 + local.set $2 i32.const 8 i32.const 2 i32.const 15 i32.const 9968 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $4 - local.get $3 + local.set $3 + local.get $2 i32.load offset=12 i32.const 8 i32.ne @@ -16603,21 +16864,21 @@ unreachable end i32.const 0 - local.set $11 + local.set $12 loop $for-loop|2 - local.get $11 - local.get $4 + local.get $12 + local.get $3 i32.load offset=12 i32.lt_s if - local.get $3 - local.get $11 + local.get $2 + local.get $12 call $~lib/array/Array#__get local.tee $7 - local.get $4 - local.get $11 + local.get $3 + local.get $12 call $~lib/array/Array#__get - local.tee $10 + local.tee $11 call $~lib/string/String.__eq i32.eqz if @@ -16630,12 +16891,12 @@ end local.get $7 call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release local.get $11 + call $~lib/rt/pure/__release + local.get $12 i32.const 1 i32.add - local.set $11 + local.set $12 br $for-loop|2 end end @@ -16645,7 +16906,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $11 + local.tee $12 i32.load offset=4 local.tee $7 i32.const 0 @@ -16663,7 +16924,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 - local.get $11 + local.get $12 call $~lib/array/Array<~lib/array/Array>#flat local.tee $7 i32.load offset=12 @@ -16675,15 +16936,15 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $12 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $9 + local.get $5 call $~lib/rt/pure/__release - local.get $25 + local.get $20 call $~lib/rt/pure/__release - local.get $13 + local.get $10 call $~lib/rt/pure/__release local.get $28 call $~lib/rt/pure/__release @@ -16691,19 +16952,114 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $5 + local.get $4 call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $3 + local.get $9 call $~lib/rt/pure/__release - local.get $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 call $~lib/rt/pure/__release ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=12 + drop + local.get $0 + local.get $1 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + 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 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.get $1 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $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 + local.get $3 + ) + (func $~lib/array/Array#flat (param $0 i32) (result i32) + i32.const 10048 + i32.const 1088 + i32.const 499 + i32.const 7 + call $~lib/builtins/abort + unreachable + ) (func $~start global.get $~started if @@ -16752,7 +17108,7 @@ i32.const 8 i32.add i32.load - br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $folding-inner0 $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $__inlined_func$~lib/rt/__visit_members $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $switch$1$default + br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $folding-inner0 $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $__inlined_func$~lib/rt/__visit_members $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $switch$1$default end local.get $0 i32.load offset=16 @@ -16841,7 +17197,7 @@ ) (func $~lib/rt/pure/__visit (param $0 i32) local.get $0 - i32.const 10032 + i32.const 10160 i32.lt_u if return @@ -16851,4 +17207,234 @@ i32.sub call $~lib/rt/pure/decrement ) + (func $~lib/array/Array#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 $~lib/array/Array#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 + i32.const 2147483647 + 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) + (local $3 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 + block $__inlined_func$~lib/array/Array#lastIndexOf + local.get $0 + local.tee $3 + i32.load offset=12 + local.tee $0 + i32.eqz + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#lastIndexOf + end + local.get $0 + local.get $2 + i32.add + local.get $0 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $0 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|0 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.eq + br_if $__inlined_func$~lib/array/Array#lastIndexOf + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|0 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + ) + (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 + i32.const 2147483647 + 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 + i32.const 2147483647 + 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 + i32.const 2147483647 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#splice + ) + (func $~lib/array/Array#join@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 6304 + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/array/Array#join + ) + (func $~setArgumentsLength (param $0 i32) + local.get $0 + global.set $~argumentsLength + ) ) diff --git a/tests/compiler/std/array.ts b/tests/compiler/std/array.ts index a37b971c25..58098b85cc 100644 --- a/tests/compiler/std/array.ts +++ b/tests/compiler/std/array.ts @@ -1060,3 +1060,7 @@ __release(changetype(arr)); let testArray: i32[][] = [[], []]; assert(testArray.flat().length == 0); } + +// export extended Array + +export class ExtendedArray extends Array {} \ No newline at end of file diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 68fe3d86d1..e69de29bb2 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -1,26332 +0,0 @@ -(module - (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 (func (param i32) (result i32))) - (type $i32_i32_=>_none (func (param i32 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 $i32_=>_none (func (param i32))) - (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) - (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) - (type $none_=>_none (func)) - (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) - (type $none_=>_f64 (func (result f64))) - (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) - (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) - (type $i32_f32_i32_=>_i32 (func (param i32 f32 i32) (result i32))) - (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) - (type $i32_f64_i32_=>_i32 (func (param i32 f64 i32) (result i32))) - (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) - (type $i32_i32_i32_=>_f32 (func (param i32 i32 i32) (result f32))) - (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) - (type $i64_=>_none (func (param i64))) - (type $none_=>_i32 (func (result i32))) - (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $i64_=>_i32 (func (param i64) (result i32))) - (type $f64_=>_i32 (func (param f64) (result i32))) - (type $i64_=>_i64 (func (param i64) (result i64))) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) - (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) - (import "rtrace" "onrealloc" (func $~lib/rt/rtrace/onrealloc (param i32 i32))) - (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) - (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) - (import "env" "seed" (func $~lib/builtins/seed (result f64))) - (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) - (memory $0 1) - (data (i32.const 16) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data (i32.const 64) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") - (data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") - (data (i32.const 160) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 224) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") - (data (i32.const 272) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") - (data (i32.const 320) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (data (i32.const 384) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00a\00b\00c\00") - (data (i32.const 416) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\02\03\04\05") - (data (i32.const 448) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\01\01\04\05") - (data (i32.const 480) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 544) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\00") - (data (i32.const 576) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\01\00\00\00") - (data (i32.const 608) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\01\00\02\02") - (data (i32.const 640) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\01\00\02\02") - (data (i32.const 672) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 720) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 768) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 816) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 864) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00") - (data (i32.const 912) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00") - (data (i32.const 960) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00A\00r\00r\00a\00y\00 \00i\00s\00 \00e\00m\00p\00t\00y\00") - (data (i32.const 1008) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1024) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1040) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1088) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1136) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1184) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1232) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1280) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00") - (data (i32.const 1328) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1376) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1424) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1472) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1520) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1568) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1616) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1664) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1712) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1760) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1808) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1856) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1904) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 1952) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 2000) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 2048) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 2096) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 2144) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00") - (data (i32.const 2192) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\00\00\c0\7f") - (data (i32.const 2224) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\00\00\f8\7f") - (data (i32.const 2256) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\00\00\c0\7f") - (data (i32.const 2288) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\00\00\f8\7f") - (data (i32.const 2320) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 2368) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 2416) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2432) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 2480) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2496) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 2544) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 2592) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 2624) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00") - (data (i32.const 2656) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 2704) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\04\00\00\00") - (data (i32.const 2736) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\05\00\00\00") - (data (i32.const 2768) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 2816) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") - (data (i32.const 2848) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 2880) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 2928) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 2960) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00") - (data (i32.const 2992) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 3040) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 3072) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 3104) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 3152) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\04\00\00\00") - (data (i32.const 3184) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\05\00\00\00") - (data (i32.const 3216) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 3264) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") - (data (i32.const 3296) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 3328) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 3376) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3392) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 3440) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 3488) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3504) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 3552) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 3600) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3616) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 3664) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 3712) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3728) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 3776) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 3824) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3840) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") - (data (i32.const 3888) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3904) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00") - (data (i32.const 4016) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") - (data (i32.const 4064) "\ac\00\00\00\01\00\00\00\01\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?\00") - (data (i32.const 4256) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f") - (data (i32.const 4304) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f") - (data (i32.const 4352) "@\00\00\00\01\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f") - (data (i32.const 4432) "@\00\00\00\01\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f") - (data (i32.const 4512) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02\00\00\00") - (data (i32.const 4560) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02\00\00\00") - (data (i32.const 4608) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02\00\00\00") - (data (i32.const 4656) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff") - (data (i32.const 4704) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4720) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") - (data (i32.const 4752) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\02\00\00\00\01\00\00\00") - (data (i32.const 4784) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 4816) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 4848) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") - (data (i32.const 4880) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00") - (data (i32.const 4912) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00a\00") - (data (i32.const 4944) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00b\00") - (data (i32.const 4976) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00a\00b\00") - (data (i32.const 5008) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00b\00a\00") - (data (i32.const 5040) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 5056) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00@\13\00\00`\13\00\00@\13\00\00\80\13\00\00\a0\13\00\00\c0\13\00\00\00\00\00\00") - (data (i32.const 5104) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\c0\13\00\00@\13\00\00@\13\00\00\80\13\00\00`\13\00\00\a0\13\00\00\00\00\00\00") - (data (i32.const 5152) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l\00") - (data (i32.const 5184) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\00") - (data (i32.const 5216) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00r\00u\00e\00") - (data (i32.const 5248) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e\00") - (data (i32.const 5280) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00,\00") - (data (i32.const 5312) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e\00") - (data (i32.const 5360) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") - (data (i32.const 5392) "d\00\00\00\01\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00") - (data (i32.const 5520) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00") - (data (i32.const 5584) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\000\00") - (data (i32.const 5604) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") - (data (i32.const 6016) "\00\04\00\00\01\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00") - (data (i32.const 7056) "H\00\00\00\01\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00") - (data (i32.const 7152) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\001\00-\002\00-\003\00") - (data (i32.const 7184) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 7216) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00-\00") - (data (i32.const 7248) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\00\00\00\80\00\00\00\80") - (data (i32.const 7280) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00_\00_\00") - (data (i32.const 7312) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008\00") - (data (i32.const 7376) "0\00\00\00\01\00\00\00\00\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f") - (data (i32.const 7440) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00,\00 \00") - (data (i32.const 7472) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\000\00.\000\00") - (data (i32.const 7504) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00") - (data (i32.const 7536) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00") - (data (i32.const 7584) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00") - (data (i32.const 7616) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00\01\00\00\00\01\00\00\00>\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00") - (data (i32.const 8896) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8912) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") - (data (i32.const 8944) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00") - (data (i32.const 8976) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 9008) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\001\00,\002\00") - (data (i32.const 9040) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003\00") - (data (i32.const 9072) "\03\00\00\00\01\00\00\00\00\00\00\00\03\00\00\00\01\ff\00") - (data (i32.const 9104) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\00,\00-\001\00,\000\00") - (data (i32.const 9136) "\06\00\00\00\01\00\00\00\00\00\00\00\06\00\00\00\01\00\ff\ff\00\00") - (data (i32.const 9168) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000\00") - (data (i32.const 9216) "\18\00\00\00\01\00\00\00\00\00\00\00\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00") - (data (i32.const 9264) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000\00") - (data (i32.const 9328) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f") - (data (i32.const 9376) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007\00") - (data (i32.const 9488) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\c0\13\00\00@\13\00\00@\13\00\00\80\13\00\00`\13\00\00\a0\13\00\00\00\00\00\00") - (data (i32.const 9536) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,\00") - (data (i32.const 9584) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\002\00") - (data (i32.const 9616) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\004\00") - (data (i32.const 9648) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\c0!\00\00\80%\00\00\00\00\00\00\a0%\00\00") - (data (i32.const 9680) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\00,\002\00,\00,\004\00") - (data (i32.const 9712) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00") - (data (i32.const 9744) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\04\00\00\00") - (data (i32.const 9776) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004\00") - (data (i32.const 9808) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\02") - (data (i32.const 9840) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\03\04") - (data (i32.const 9872) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") - (data (i32.const 9904) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00") - (data (i32.const 9936) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 9968) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00") - (data (i32.const 10000) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00") - (data (i32.const 10032) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00o\00n\00e\00") - (data (i32.const 10064) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00@\'\00\00") - (data (i32.const 10096) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00t\00w\00o\00") - (data (i32.const 10128) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00t\00h\00r\00e\00e\00") - (data (i32.const 10160) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\80\'\00\00\00\00\00\00\a0\'\00\00") - (data (i32.const 10192) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00f\00o\00u\00r\00") - (data (i32.const 10224) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00f\00i\00v\00e\00") - (data (i32.const 10256) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00s\00i\00x\00") - (data (i32.const 10288) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\e0\'\00\00\00(\00\00 (\00\00") - (data (i32.const 10320) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00s\00e\00v\00e\00n\00") - (data (i32.const 10352) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00`(\00\00") - (data (i32.const 10384) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00@\'\00\00\80\'\00\00\00\00\00\00\a0\'\00\00\e0\'\00\00\00(\00\00 (\00\00`(\00\00") - (data (i32.const 10432) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10448) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (table $0 57 funcref) - (elem (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|4 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|39 $start:std/array~anonymous|40 $start:std/array~anonymous|41 $start:std/array~anonymous|42 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $start:std/array~anonymous|43 $start:std/array~anonymous|44 $start:std/array~anonymous|45 $start:std/array~anonymous|46 $start:std/array~anonymous|47 $start:std/array~anonymous|48 $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) - (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) - (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) - (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) - (global $std/array/arr (mut i32) (i32.const 0)) - (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) - (global $std/array/i (mut i32) (i32.const 0)) - (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/math/random_seeded (mut i32) (i32.const 0)) - (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) - (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 $std/array/charset i32 (i32.const 4080)) - (global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648)) - (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) - (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) - (global $~lib/util/number/_exp (mut i32) (i32.const 0)) - (global $~lib/util/number/_K (mut i32) (i32.const 0)) - (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) - (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) - (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) - (global $~lib/builtins/i64.MAX_VALUE i64 (i64.const 9223372036854775807)) - (global $~started (mut i32) (i32.const 0)) - (global $~lib/heap/__heap_base i32 (i32.const 10464)) - (export "_start" (func $~start)) - (export "memory" (memory $0)) - (func $~lib/rt/pure/__release (param $0 i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - local.get $1 - i32.load - local.set $2 - i32.const 1 - drop - local.get $2 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 277 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $3 - i32.const 1 - drop - local.get $3 - i32.const 16 - i32.ge_u - if (result i32) - local.get $3 - i32.const 1073741808 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 279 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $4 - local.get $3 - i32.const 4 - i32.shr_u - local.set $5 - else - i32.const 31 - local.get $3 - i32.clz - i32.sub - local.set $4 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $5 - local.get $4 - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $4 - end - i32.const 1 - drop - local.get $4 - i32.const 23 - i32.lt_u - if (result i32) - local.get $5 - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 292 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=16 - local.set $6 - local.get $1 - i32.load offset=20 - local.set $7 - local.get $6 - if - local.get $6 - local.get $7 - i32.store offset=20 - end - local.get $7 - if - local.get $7 - local.get $6 - i32.store offset=16 - end - local.get $1 - local.get $0 - local.set $10 - local.get $4 - local.set $9 - local.get $5 - local.set $8 - local.get $10 - local.get $9 - i32.const 4 - i32.shl - local.get $8 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - i32.eq - if - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - local.get $7 - i32.eqz - if - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $9 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - local.get $9 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $4 - i32.shl - i32.const -1 - i32.xor - i32.and - i32.store - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - i32.const 1 - drop - local.get $1 - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 205 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.set $2 - i32.const 1 - drop - local.get $2 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 207 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $4 - local.get $4 - i32.load - local.set $5 - local.get $5 - i32.const 1 - i32.and - if - local.get $2 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.add - local.get $5 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $3 - local.get $3 - i32.const 1073741808 - i32.lt_u - if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $2 - i32.const 3 - i32.and - local.get $3 - i32.or - local.tee $2 - i32.store - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $4 - local.get $4 - i32.load - local.set $5 - end - end - local.get $2 - i32.const 2 - i32.and - if - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - local.set $6 - local.get $6 - i32.load - local.set $3 - i32.const 1 - drop - local.get $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 228 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.add - local.get $2 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $7 - local.get $7 - i32.const 1073741808 - i32.lt_u - if - local.get $0 - local.get $6 - call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $3 - i32.const 3 - i32.and - local.get $7 - i32.or - local.tee $2 - i32.store - local.get $6 - local.set $1 - end - end - local.get $4 - local.get $5 - i32.const 2 - i32.or - i32.store - local.get $2 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $8 - i32.const 1 - drop - local.get $8 - i32.const 16 - i32.ge_u - if (result i32) - local.get $8 - i32.const 1073741808 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 243 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $1 - i32.const 16 - i32.add - local.get $8 - i32.add - local.get $4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 244 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store - local.get $8 - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $9 - local.get $8 - i32.const 4 - i32.shr_u - local.set $10 - else - i32.const 31 - local.get $8 - i32.clz - i32.sub - local.set $9 - local.get $8 - local.get $9 - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $10 - local.get $9 - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $9 - end - i32.const 1 - drop - local.get $9 - i32.const 23 - i32.lt_u - if (result i32) - local.get $10 - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 260 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $11 - local.get $1 - i32.const 0 - i32.store offset=16 - local.get $1 - local.get $11 - i32.store offset=20 - local.get $11 - if - local.get $11 - local.get $1 - i32.store offset=16 - end - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $9 - i32.shl - i32.or - i32.store - local.get $0 - local.set $13 - local.get $9 - local.set $12 - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (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) - i32.const 1 - drop - local.get $1 - local.get $2 - i32.le_u - if (result i32) - local.get $1 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $2 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 386 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - local.set $4 - i32.const 0 - local.set $5 - local.get $4 - if - i32.const 1 - drop - local.get $1 - local.get $4 - i32.const 16 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 396 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 16 - i32.sub - local.get $4 - i32.eq - if - local.get $1 - i32.const 16 - i32.sub - local.set $1 - local.get $4 - i32.load - local.set $5 - else - nop - end - else - i32.const 1 - drop - local.get $1 - local.get $0 - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 408 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - local.get $1 - i32.sub - local.set $6 - local.get $6 - i32.const 16 - i32.const 16 - i32.add - i32.const 16 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $6 - i32.const 16 - i32.const 1 - i32.shl - i32.sub - local.set $7 - local.get $1 - local.set $8 - local.get $8 - local.get $7 - i32.const 1 - i32.or - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $8 - i32.const 0 - i32.store offset=16 - local.get $8 - i32.const 0 - i32.store offset=20 - local.get $1 - local.get $6 - i32.add - i32.const 16 - i32.sub - local.set $4 - local.get $4 - i32.const 0 - i32.const 2 - i32.or - i32.store - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $8 - call $~lib/rt/tlsf/insertBlock - i32.const 1 - ) - (func $~lib/rt/tlsf/maybeInitialize (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) - global.get $~lib/rt/tlsf/ROOT - local.set $0 - local.get $0 - i32.eqz - if - global.get $~lib/heap/__heap_base - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $1 - memory.size - local.set $2 - local.get $1 - i32.const 1572 - i32.add - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $3 - local.get $3 - local.get $2 - i32.gt_s - if (result i32) - local.get $3 - local.get $2 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $1 - local.set $0 - local.get $0 - i32.const 0 - i32.store - local.get $0 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 23 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $0 - local.set $8 - local.get $5 - local.set $7 - i32.const 0 - local.set $6 - local.get $8 - local.get $7 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $8 - loop $for-loop|1 - local.get $8 - i32.const 16 - i32.lt_u - local.set $7 - local.get $7 - if - local.get $0 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - local.get $8 - i32.const 1 - i32.add - local.set $8 - br $for-loop|1 - end - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $1 - i32.const 1572 - i32.add - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $5 - i32.const 0 - drop - local.get $0 - local.get $5 - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $0 - global.set $~lib/rt/tlsf/ROOT - end - local.get $0 - ) - (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.const 1073741808 - i32.ge_u - if - i32.const 176 - i32.const 128 - i32.const 461 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.tee $1 - i32.const 16 - local.tee $2 - local.get $1 - local.get $2 - i32.gt_u - select - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $2 - local.get $1 - i32.const 4 - i32.shr_u - local.set $3 - else - local.get $1 - i32.const 536870904 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $1 - end - local.set $4 - i32.const 31 - local.get $4 - i32.clz - i32.sub - local.set $2 - local.get $4 - local.get $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $3 - local.get $2 - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $2 - end - i32.const 1 - drop - local.get $2 - i32.const 23 - i32.lt_u - if (result i32) - local.get $3 - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 338 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const 0 - i32.const -1 - i32.xor - local.get $3 - i32.shl - i32.and - local.set $6 - i32.const 0 - local.set $7 - local.get $6 - i32.eqz - if - local.get $0 - i32.load - i32.const 0 - i32.const -1 - i32.xor - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.set $5 - local.get $5 - i32.eqz - if - i32.const 0 - local.set $7 - else - local.get $5 - i32.ctz - local.set $2 - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $6 - i32.const 1 - drop - local.get $6 - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 351 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $7 - end - else - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $7 - end - local.get $7 - ) - (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - i32.const 0 - drop - local.get $1 - i32.const 536870904 - i32.lt_u - if - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub - i32.shl - i32.const 1 - i32.sub - i32.add - local.set $1 - end - memory.size - local.set $2 - local.get $1 - i32.const 16 - local.get $2 - i32.const 16 - i32.shl - i32.const 16 - i32.sub - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - i32.ne - i32.shl - i32.add - local.set $1 - local.get $1 - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $4 - local.get $2 - local.tee $3 - local.get $4 - local.tee $5 - local.get $3 - local.get $5 - i32.gt_s - select - local.set $6 - local.get $6 - memory.grow - i32.const 0 - i32.lt_s - if - local.get $4 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $7 - local.get $0 - local.get $2 - i32.const 16 - i32.shl - local.get $7 - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.set $3 - i32.const 1 - drop - local.get $2 - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 365 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.sub - local.set $4 - local.get $4 - i32.const 16 - i32.const 16 - i32.add - i32.ge_u - if - local.get $1 - local.get $2 - local.get $3 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.get $2 - i32.add - local.set $5 - local.get $5 - local.get $4 - i32.const 16 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - i32.const 1 - i32.const -1 - i32.xor - i32.and - i32.store - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - i32.load - i32.const 2 - i32.const -1 - i32.xor - i32.and - i32.store - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - i32.const 1 - drop - global.get $~lib/rt/tlsf/collectLock - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 500 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/rt/tlsf/prepareSize - local.set $3 - local.get $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.set $4 - local.get $4 - i32.eqz - if - global.get $~lib/gc/gc.auto - if - i32.const 1 - drop - i32.const 1 - global.set $~lib/rt/tlsf/collectLock - call $~lib/rt/pure/__collect - i32.const 1 - drop - i32.const 0 - global.set $~lib/rt/tlsf/collectLock - local.get $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.set $4 - local.get $4 - i32.eqz - if - local.get $0 - local.get $3 - call $~lib/rt/tlsf/growMemory - local.get $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.set $4 - i32.const 1 - drop - local.get $4 - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 512 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - end - else - local.get $0 - local.get $3 - call $~lib/rt/tlsf/growMemory - local.get $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.set $4 - i32.const 1 - drop - local.get $4 - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 517 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - end - end - i32.const 1 - drop - local.get $4 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $3 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 520 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 0 - i32.store offset=4 - local.get $4 - local.get $2 - i32.store offset=8 - local.get $4 - local.get $1 - i32.store offset=12 - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $0 - local.get $4 - local.get $3 - call $~lib/rt/tlsf/prepareBlock - i32.const 1 - drop - local.get $4 - call $~lib/rt/rtrace/onalloc - local.get $4 - ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) - (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - (local $10 i32) - block $~lib/util/memory/memset|inlined.0 - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - i32.const 0 - i32.const 1 - i32.gt_s - drop - local.get $3 - i32.eqz - if - br $~lib/util/memory/memset|inlined.0 - end - local.get $5 - local.get $3 - i32.add - i32.const 4 - i32.sub - local.set $6 - local.get $5 - local.get $4 - i32.store8 - local.get $6 - local.get $4 - i32.store8 offset=3 - local.get $3 - i32.const 2 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end - local.get $5 - local.get $4 - i32.store8 offset=1 - local.get $5 - local.get $4 - i32.store8 offset=2 - local.get $6 - local.get $4 - i32.store8 offset=2 - local.get $6 - local.get $4 - i32.store8 offset=1 - local.get $3 - i32.const 6 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end - local.get $5 - local.get $4 - i32.store8 offset=3 - local.get $6 - local.get $4 - i32.store8 - local.get $3 - i32.const 8 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end - i32.const 0 - local.get $5 - i32.sub - i32.const 3 - i32.and - local.set $7 - local.get $5 - local.get $7 - i32.add - local.set $5 - local.get $3 - local.get $7 - i32.sub - local.set $3 - local.get $3 - i32.const -4 - i32.and - local.set $3 - i32.const -1 - i32.const 255 - i32.div_u - local.get $4 - i32.const 255 - i32.and - i32.mul - local.set $8 - local.get $5 - local.get $3 - i32.add - i32.const 28 - i32.sub - local.set $6 - local.get $5 - local.get $8 - i32.store - local.get $6 - local.get $8 - i32.store offset=24 - local.get $3 - i32.const 8 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end - local.get $5 - local.get $8 - i32.store offset=4 - local.get $5 - local.get $8 - i32.store offset=8 - local.get $6 - local.get $8 - i32.store offset=16 - local.get $6 - local.get $8 - i32.store offset=20 - local.get $3 - i32.const 24 - i32.le_u - if - br $~lib/util/memory/memset|inlined.0 - end - local.get $5 - local.get $8 - i32.store offset=12 - local.get $5 - local.get $8 - i32.store offset=16 - local.get $5 - local.get $8 - i32.store offset=20 - local.get $5 - local.get $8 - i32.store offset=24 - local.get $6 - local.get $8 - i32.store - local.get $6 - local.get $8 - i32.store offset=4 - local.get $6 - local.get $8 - i32.store offset=8 - local.get $6 - local.get $8 - i32.store offset=12 - i32.const 24 - local.get $5 - i32.const 4 - i32.and - i32.add - local.set $7 - local.get $5 - local.get $7 - i32.add - local.set $5 - local.get $3 - local.get $7 - i32.sub - local.set $3 - local.get $8 - i64.extend_i32_u - local.get $8 - i64.extend_i32_u - i64.const 32 - i64.shl - i64.or - local.set $9 - loop $while-continue|0 - local.get $3 - i32.const 32 - i32.ge_u - local.set $10 - local.get $10 - if - local.get $5 - local.get $9 - i64.store - local.get $5 - local.get $9 - i64.store offset=8 - local.get $5 - local.get $9 - i64.store offset=16 - local.get $5 - local.get $9 - i64.store offset=24 - local.get $3 - i32.const 32 - i32.sub - local.set $3 - local.get $5 - i32.const 32 - i32.add - local.set $5 - br $while-continue|0 - end - end - end - ) - (func $~lib/rt/pure/increment (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $1 - i32.const 1 - i32.add - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 240 - i32.const 109 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.store offset=4 - i32.const 1 - drop - local.get $0 - call $~lib/rt/rtrace/onincrement - i32.const 1 - drop - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 240 - i32.const 112 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/pure/__retain (param $0 i32) (result i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/increment - end - local.get $0 - ) - (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.get $0 - i32.eqz - if - i32.const 16 - i32.const 3 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - 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 1073741808 - i32.const 2 - i32.shr_u - i32.gt_u - if - i32.const 32 - i32.const 80 - i32.const 57 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - local.set $2 - local.get $2 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $3 - local.get $3 - i32.const 0 - local.get $2 - call $~lib/memory/memory.fill - local.get $0 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 - i32.load - local.tee $6 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $5 - i32.store - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=12 - local.get $0 - ) - (func $~lib/array/Array.isArray<~lib/array/Array | null> (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - i32.const 1 - if (result i32) - local.get $0 - i32.const 0 - i32.ne - else - i32.const 0 - end - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - ) - (func $std/array/Ref#constructor (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.eqz - if - i32.const 4 - i32.const 4 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - local.get $1 - i32.store - local.get $0 - ) - (func $~lib/array/Array.isArray (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - i32.const 0 - if (result i32) - local.get $0 - i32.const 0 - i32.ne - else - i32.const 0 - end - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - ) - (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.get $0 - i32.eqz - if - i32.const 12 - i32.const 2 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - 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 1073741808 - local.get $2 - i32.shr_u - i32.gt_u - if - i32.const 32 - i32.const 336 - i32.const 18 - i32.const 57 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.shl - local.tee $1 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $3 - local.get $3 - i32.const 0 - local.get $1 - call $~lib/memory/memory.fill - local.get $0 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 - i32.load - local.tee $6 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $5 - i32.store - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - ) - (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.eqz - if - i32.const 12 - i32.const 5 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - local.get $1 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.set $0 - local.get $0 - ) - (func $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - i32.const 0 - if (result i32) - local.get $0 - i32.const 0 - i32.ne - else - i32.const 0 - end - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - ) - (func $~lib/array/Array.isArray (param $0 i32) (result i32) - i32.const 0 - ) - (func $~lib/array/Array.isArray<~lib/string/String> (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - i32.const 0 - if (result i32) - local.get $0 - i32.const 0 - i32.ne - else - i32.const 0 - end - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - ) - (func $~lib/array/Array.isArray<~lib/array/Array> (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - i32.const 1 - if (result i32) - local.get $0 - i32.const 0 - i32.ne - else - i32.const 0 - end - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - ) - (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 - 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 - i32.const 2 - i32.and - if - local.get $0 - local.get $1 - i32.load16_u - i32.store16 - 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.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 $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 - 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 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 - 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 - 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 - 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 - 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 $2 - i32.const 19 - i32.ge_u - local.set $5 - 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 - end - br $break|2 - end - end - local.get $2 - i32.const 16 - 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 - 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 $2 - i32.const 8 - 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 - 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 $~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 $3 - i32.add - local.get $5 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $5 - local.get $3 - i32.add - local.get $4 - i32.le_u - end - 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/__allocBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $0 - local.get $1 - call $~lib/rt/tlsf/__alloc - 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 $~lib/rt/__allocArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - i32.const 16 - local.get $2 - call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $0 - local.get $1 - i32.shl - local.set $5 - local.get $5 - i32.const 0 - local.get $3 - call $~lib/rt/__allocBuffer - local.set $6 - local.get $4 - local.get $6 - call $~lib/rt/pure/__retain - i32.store - local.get $4 - local.get $6 - i32.store offset=4 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $0 - i32.store offset=12 - local.get $4 - ) - (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) - (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 $6 - local.get $5 - local.tee $7 - local.get $6 - local.get $7 - 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 $6 - local.get $5 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - end - local.set $3 - i32.const 0 - drop - i32.const 1 - i32.const 1 - i32.eq - drop - local.get $2 - local.get $3 - i32.lt_s - if - local.get $4 - local.get $2 - i32.add - local.get $1 - local.get $3 - local.get $2 - i32.sub - call $~lib/memory/memory.fill - end - local.get $0 - call $~lib/rt/pure/__retain - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (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#__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 496 - i32.const 80 - i32.const 104 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__uget - local.set $2 - i32.const 0 - 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 $5 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - end - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - 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 - local.set $5 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - 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 $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - ) - (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) - (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 $6 - local.get $5 - local.tee $7 - local.get $6 - local.get $7 - 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 $6 - local.get $5 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - end - local.set $3 - i32.const 0 - drop - i32.const 4 - i32.const 1 - i32.eq - drop - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $0 - call $~lib/rt/pure/__retain - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (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/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 496 - i32.const 80 - i32.const 104 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__uget - local.set $2 - i32.const 0 - 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 $5 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - end - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - 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 - local.set $5 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - 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 $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - ) - (func $std/array/internalCapacity (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - i32.load - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - i32.const 2 - i32.shr_s - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.const 16 - i32.sub - local.set $1 - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $1 - i32.load - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $1 - i32.load offset=4 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 580 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - ) - (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $1 - i32.load - local.set $2 - local.get $1 - local.get $2 - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - i32.const 1 - drop - local.get $1 - call $~lib/rt/rtrace/onfree - ) - (func $~lib/rt/tlsf/reallocateBlock (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 $2 - call $~lib/rt/tlsf/prepareSize - local.set $3 - local.get $1 - i32.load - local.set $4 - local.get $3 - local.get $4 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.le_u - if - local.get $0 - local.get $1 - local.get $3 - call $~lib/rt/tlsf/prepareBlock - local.get $1 - local.get $2 - i32.store offset=12 - local.get $1 - return - end - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $6 - local.get $6 - i32.load - local.set $7 - local.get $7 - i32.const 1 - i32.and - if - local.get $4 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.add - local.get $7 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $5 - local.get $5 - local.get $3 - i32.ge_u - if - local.get $0 - local.get $6 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $4 - i32.const 3 - i32.and - local.get $5 - i32.or - i32.store - local.get $1 - local.get $2 - i32.store offset=12 - local.get $0 - local.get $1 - local.get $3 - call $~lib/rt/tlsf/prepareBlock - local.get $1 - return - end - end - local.get $0 - local.get $2 - local.get $1 - i32.load offset=8 - call $~lib/rt/tlsf/allocateBlock - local.set $8 - local.get $8 - local.get $1 - i32.load offset=4 - i32.store offset=4 - local.get $8 - i32.const 16 - i32.add - local.get $1 - i32.const 16 - i32.add - local.get $2 - call $~lib/memory/memory.copy - local.get $1 - global.get $~lib/heap/__heap_base - i32.ge_u - if - i32.const 1 - drop - local.get $1 - local.get $8 - call $~lib/rt/rtrace/onrealloc - local.get $0 - local.get $1 - call $~lib/rt/tlsf/freeBlock - end - local.get $8 - ) - (func $~lib/rt/tlsf/__realloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - call $~lib/rt/tlsf/checkUsedBlock - local.get $1 - call $~lib/rt/tlsf/reallocateBlock - i32.const 16 - i32.add - ) - (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 1073741808 - local.get $2 - i32.shr_u - i32.gt_u - if - i32.const 32 - i32.const 80 - 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 - local.get $5 - call $~lib/rt/tlsf/__realloc - 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 - end - local.get $0 - local.get $5 - i32.store offset=8 - end - ) - (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 - i32.store offset=12 - local.get $3 - ) - (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/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 496 - i32.const 80 - i32.const 104 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__uget - local.set $2 - i32.const 0 - drop - local.get $2 - ) - (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 976 - i32.const 80 - i32.const 300 - 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 - i32.store offset=12 - local.get $2 - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - i32.load offset=12 - local.set $2 - i32.const 1 - drop - local.get $2 - local.get $1 - i32.gt_s - if - local.get $0 - i32.load offset=4 - local.set $3 - local.get $3 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.set $4 - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.set $5 - loop $do-continue|0 - local.get $4 - i32.load - call $~lib/rt/pure/__release - local.get $4 - i32.const 4 - i32.add - local.tee $4 - local.get $5 - i32.lt_u - local.set $6 - local.get $6 - br_if $do-continue|0 - end - else - local.get $0 - local.get $1 - i32.const 2 - call $~lib/array/ensureSize - end - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (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) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 - local.get $2 - local.get $3 - i32.add - local.set $4 - local.get $4 - i32.const 1073741808 - i32.const 2 - i32.shr_u - i32.gt_u - if - i32.const 32 - i32.const 80 - i32.const 229 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $5 - 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 - local.get $1 - call $~lib/rt/pure/__release - local.get $8 - ) - (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 $6 - i32.const 0 - local.tee $7 - local.get $6 - local.get $7 - 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 $6 - i32.const 0 - local.tee $7 - local.get $6 - local.get $7 - 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 $6 - i32.const 0 - local.tee $7 - local.get $6 - local.get $7 - 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 $6 - local.get $5 - local.get $8 - i32.sub - local.tee $7 - local.get $6 - local.get $7 - i32.lt_s - select - local.set $11 - i32.const 0 - drop - 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 - call $~lib/rt/pure/__retain - ) - (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.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - end - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - 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 - local.set $5 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - 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 $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - 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 - i32.const 0 - drop - local.get $3 - local.get $1 - i32.store - local.get $0 - local.get $2 - i32.store offset=12 - 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 976 - i32.const 80 - i32.const 361 - 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 - local.get $2 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.const 0 - i32.store - local.get $0 - local.get $4 - i32.store offset=12 - local.get $3 - ) - (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 - call $~lib/rt/pure/__retain - ) - (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 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#indexOf (param $0 i32) (param $1 f32) (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 2 - i32.shl - i32.add - f32.load - local.get $1 - f32.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 f64) (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 3 - i32.shl - i32.add - f64.load - local.get $1 - f64.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#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) - (local $5 i32) - (local $6 f32) - i32.const 1 - drop - 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 0 - 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 $4 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $6 - local.get $6 - local.get $1 - f32.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $6 - f32.ne - local.get $1 - local.get $1 - f32.ne - i32.and - end - if - i32.const 1 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const 0 - return - ) - (func $~lib/array/Array#includes (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 f64) - i32.const 1 - drop - 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 0 - 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 $4 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $4 - local.get $2 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $6 - local.get $6 - local.get $1 - f64.eq - if (result i32) - i32.const 1 - else - local.get $6 - local.get $6 - f64.ne - local.get $1 - local.get $1 - f64.ne - i32.and - end - if - i32.const 1 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const 0 - return - ) - (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.get $0 - i32.load offset=12 - 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 $4 - local.get $3 - local.tee $5 - local.get $4 - local.get $5 - 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 $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.set $2 - local.get $2 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $6 - 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 - i32.store offset=12 - local.get $6 - ) - (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.get $0 - i32.load offset=12 - 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 $4 - local.get $3 - local.tee $5 - local.get $4 - local.get $5 - 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 $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.set $2 - local.get $2 - i32.const 2 - i32.const 8 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $6 - 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 - i32.store offset=12 - local.get $6 - ) - (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 - call $~lib/rt/pure/__retain - ) - (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 496 - i32.const 80 - i32.const 104 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__uget - local.set $2 - i32.const 1 - drop - i32.const 0 - i32.eqz - drop - local.get $2 - i32.eqz - if - i32.const 3920 - i32.const 80 - i32.const 108 - i32.const 40 - call $~lib/builtins/abort - unreachable - end - 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) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - i32.load offset=12 - 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 $4 - local.get $3 - local.tee $5 - local.get $4 - local.get $5 - 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 $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.set $2 - local.get $2 - i32.const 2 - i32.const 11 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $6 - 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 - i32.store offset=12 - local.get $6 - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (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 - call $~lib/rt/pure/__retain - ) - (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 496 - i32.const 80 - i32.const 104 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__uget - local.set $2 - i32.const 1 - drop - i32.const 1 - i32.eqz - drop - local.get $2 - ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) - i32.const 0 - drop - 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 (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 496 - i32.const 80 - i32.const 120 - 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 - i32.store offset=12 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) - (func $start:std/array~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 0 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $~lib/array/Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (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.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 - 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 $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 1 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 100 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|3 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $2 - i32.const 100 - call $~lib/array/Array#push - drop - local.get $0 - i32.const 100 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|4 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 100 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|5 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $2 - call $~lib/array/Array#pop - drop - local.get $0 - i32.const 100 - i32.eq - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|6 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 0 - i32.ge_s - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - 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) - 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 - i32.const 3 - global.set $~argumentsLength - local.get $1 - 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 $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 0 - i32.le_s - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|8 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $2 - i32.const 100 - call $~lib/array/Array#push - drop - local.get $0 - i32.const 10 - i32.lt_s - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|9 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 10 - i32.lt_s - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|10 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $2 - call $~lib/array/Array#pop - drop - local.get $0 - i32.const 3 - i32.lt_s - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|11 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 3 - i32.ge_s - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - 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) - 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 - i32.const 3 - global.set $~argumentsLength - local.get $1 - 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 $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const -1 - i32.le_s - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|13 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $2 - i32.const 100 - call $~lib/array/Array#push - drop - local.get $0 - i32.const 10 - i32.gt_s - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|14 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 10 - i32.gt_s - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|15 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $2 - call $~lib/array/Array#pop - drop - local.get $0 - i32.const 3 - i32.gt_s - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|16 (param $0 i32) (param $1 i32) (param $2 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - global.get $std/array/i - local.get $0 - i32.add - global.set $std/array/i - local.get $2 - call $~lib/rt/pure/__release - ) - (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 $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 - 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|17 (param $0 i32) (param $1 i32) (param $2 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - 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 $2 - call $~lib/rt/pure/__release - ) - (func $start:std/array~anonymous|18 (param $0 i32) (param $1 i32) (param $2 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - global.get $std/array/i - local.get $0 - i32.add - global.set $std/array/i - local.get $2 - call $~lib/rt/pure/__release - ) - (func $start:std/array~anonymous|19 (param $0 i32) (param $1 i32) (param $2 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $2 - call $~lib/array/Array#pop - drop - global.get $std/array/i - local.get $0 - i32.add - global.set $std/array/i - local.get $2 - call $~lib/rt/pure/__release - ) - (func $start:std/array~anonymous|20 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - 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 - if - 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 - local.set $4 - local.get $4 - if - local.get $2 - i32.const 100 - local.get $3 - 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 - local.set $4 - local.get $4 - if - 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 - local.set $4 - local.get $4 - if - 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.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 625 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - call $~lib/rt/pure/__release - ) - (func $start:std/array~anonymous|21 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) - (local $3 f32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - f32.convert_i32_s - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (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.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 2 - i32.const 9 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $3 - 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 - call_indirect (type $i32_i32_i32_=>_f32) - local.set $8 - i32.const 0 - drop - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.get $8 - f32.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (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/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 496 - i32.const 80 - i32.const 104 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__uget - 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 $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - 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.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (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.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $3 - 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 - call_indirect (type $i32_i32_i32_=>_i32) - local.set $7 - i32.const 0 - drop - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - ) - (func $start:std/array~anonymous|23 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - global.get $std/array/i - local.get $0 - i32.add - global.set $std/array/i - local.get $0 - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|24 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $2 - 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 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|25 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - i32.const 2 - i32.ge_s - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - 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) - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $2 - 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 - 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 - ) - (func $start:std/array~anonymous|26 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - 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 - i32.const 2 - i32.ge_s - local.set $3 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|27 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - 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 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|28 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $2 - 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 - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $start:std/array~anonymous|29 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (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.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 - i32.const 4 - global.set $~argumentsLength - local.get $1 - 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 - end - local.get $3 - ) - (func $start:std/array~anonymous|30 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $start:std/array~anonymous|31 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $0 - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 2 - i32.gt_s - end - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (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.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 - i32.const 4 - global.set $~argumentsLength - local.get $1 - 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 - 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 $4 i32) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $0 - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 100 - i32.gt_s - end - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $start:std/array~anonymous|33 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $3 - i32.const 1 - call $~lib/array/Array#push - drop - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $start:std/array~anonymous|34 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - 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) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $3 - call $~lib/array/Array#pop - drop - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $start:std/array~anonymous|36 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - 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.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 - i32.const 4 - global.set $~argumentsLength - local.get $1 - 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|37 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $start:std/array~anonymous|38 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $0 - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 2 - i32.gt_s - end - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - 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.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 - i32.const 4 - global.set $~argumentsLength - local.get $1 - 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 $4 i32) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $0 - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 100 - i32.gt_s - end - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $start:std/array~anonymous|40 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $3 - i32.const 1 - call $~lib/array/Array#push - drop - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $start:std/array~anonymous|41 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $start:std/array~anonymous|42 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $3 - call $~lib/array/Array#pop - drop - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - ) - (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 4032 - i32.const 1398 - 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 f32) - (local $6 i32) - (local $7 i32) - (local $8 f32) - (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 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 - 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 - 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 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - ) - (func $~lib/rt/tlsf/__free (param $0 i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (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 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 - i32.const 0 - 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 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 - call_indirect (type $f32_f32_=>_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 - f32.store - local.get $0 - local.get $8 - i32.const 2 - i32.shl - i32.add - local.get $10 - f32.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 - 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 - 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 - end - end - local.get $4 - call $~lib/rt/tlsf/__free - local.get $0 - f32.load offset=4 - local.set $12 - local.get $0 - local.get $0 - f32.load - f32.store offset=4 - local.get $0 - local.get $12 - f32.store - ) - (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 - call $~lib/rt/pure/__retain - 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 - 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 - call $~lib/rt/pure/__retain - 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 - call $~lib/rt/pure/__retain - ) - (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/array/Array#sort@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 - 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 44 - br $~lib/util/sort/COMPARATOR|inlined.0 - end - local.set $1 - end - local.get $0 - local.get $1 - call $~lib/array/Array#sort - ) - (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 f32) - (local $6 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - end - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - 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 - local.set $6 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $6 - return - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - ) - (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.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 - 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 - 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 - i32.const 0 - 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 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 - 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 - 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 - 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 $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/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 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.le_s - if - local.get $0 - call $~lib/rt/pure/__retain - return - end - local.get $0 - i32.load offset=4 - local.set $3 - local.get $2 - 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 - 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 - call $~lib/rt/pure/__retain - 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 - call $~lib/rt/pure/__retain - ) - (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 - 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/array/Array#sort@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 - 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 45 - br $~lib/util/sort/COMPARATOR|inlined.0 - end - local.set $1 - end - local.get $0 - local.get $1 - call $~lib/array/Array#sort - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (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/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 496 - i32.const 80 - i32.const 104 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__uget - local.set $2 - i32.const 0 - 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 $5 f64) - (local $6 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - end - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - 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 - local.set $6 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $6 - return - end - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - ) - (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 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 - 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 - ) - (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 - i32.const 0 - 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 2 - i32.shl - i32.add - i32.load - local.set $9 - local.get $0 - local.get $5 - 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 - 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 - 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 - 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 - 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.sub - 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 - call $~lib/rt/pure/__retain - 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 - 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 - call $~lib/rt/pure/__retain - 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 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 - call $~lib/rt/pure/__retain - ) - (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/array/Array#sort@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 - 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 46 - br $~lib/util/sort/COMPARATOR|inlined.0 - end - local.set $1 - end - local.get $0 - local.get $1 - call $~lib/array/Array#sort - ) - (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 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 - 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 - ) - (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 - i32.const 0 - 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 2 - i32.shl - i32.add - i32.load - local.set $9 - local.get $0 - local.get $5 - 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 - 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 - 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 - 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 - 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.sub - 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 - call $~lib/rt/pure/__retain - 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 - 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 - call $~lib/rt/pure/__retain - 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 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 - call $~lib/rt/pure/__retain - ) - (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/array/Array#sort@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 - 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 47 - br $~lib/util/sort/COMPARATOR|inlined.0 - end - local.set $1 - end - local.get $0 - local.get $1 - call $~lib/array/Array#sort - ) - (func $std/array/createReverseOrderedArray (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - local.get $0 - call $~lib/array/Array#constructor - local.set $1 - 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 - 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 $1 - ) - (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/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 - f64.reinterpret_i64 - f64.const 1 - f64.sub - ) - (func $std/array/createRandomOrderedArray (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 0 - local.get $0 - call $~lib/array/Array#constructor - local.set $1 - 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 - 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 - local.get $1 - ) - (func $~lib/util/sort/COMPARATOR~anonymous|1 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.sub - ) - (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.get $0 - call $~lib/rt/pure/__retain - local.set $0 - 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.lt_s - local.set $4 - 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 - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s - if - i32.const 0 - local.set $5 - local.get $0 - call $~lib/rt/pure/__release - 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 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/array/assertSorted (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - local.get $1 - call $~lib/array/Array#sort - local.tee $2 - local.get $1 - call $std/array/isSorted - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - ) - (func $std/array/assertSortedDefault (param $0 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - 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 48 - br $~lib/util/sort/COMPARATOR|inlined.1 - end - call $std/array/assertSorted - local.get $0 - call $~lib/rt/pure/__release - ) - (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>#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.get $0 - i32.eqz - if - i32.const 16 - i32.const 12 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - 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 1073741808 - i32.const 2 - i32.shr_u - i32.gt_u - if - i32.const 32 - i32.const 80 - i32.const 57 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - local.set $2 - local.get $2 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $3 - local.get $3 - i32.const 0 - local.get $2 - call $~lib/memory/memory.fill - local.get $0 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 - i32.load - local.tee $6 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $5 - i32.store - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=12 - local.get $0 - ) - (func $~lib/array/Array<~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - i32.const 1 - drop - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.set $3 - local.get $3 - i32.load - local.set $4 - local.get $2 - local.get $4 - i32.ne - if - local.get $3 - local.get $2 - call $~lib/rt/pure/__retain - i32.store - local.get $4 - call $~lib/rt/pure/__release - end - local.get $2 - call $~lib/rt/pure/__release - ) - (func $~lib/array/Array<~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - 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 496 - i32.const 80 - i32.const 120 - 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 - i32.store offset=12 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array<~lib/array/Array>#__uset - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/array/createReverseOrderedNestedArray (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - i32.const 0 - local.get $0 - call $~lib/array/Array<~lib/array/Array>#constructor - local.set $1 - 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 - i32.const 0 - i32.const 1 - call $~lib/array/Array#constructor - local.set $4 - local.get $4 - 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.get $2 - local.get $4 - call $~lib/array/Array<~lib/array/Array>#__set - local.get $4 - call $~lib/rt/pure/__release - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - ) - (func $start:std/array~anonymous|47 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.const 0 - call $~lib/array/Array#__get - local.get $1 - i32.const 0 - call $~lib/array/Array#__get - i32.sub - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (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) - 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 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retain - 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 - call $~lib/rt/pure/__retain - local.set $8 - local.get $5 - local.get $8 - i32.const 2 - global.set $~argumentsLength - local.get $2 - 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 - local.get $8 - call $~lib/rt/pure/__release - br $while-break|1 - end - local.get $8 - call $~lib/rt/pure/__release - 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 $5 - call $~lib/rt/pure/__release - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - ) - (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.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.le_s - if - local.get $0 - call $~lib/rt/pure/__retain - 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 - call $~lib/rt/pure/__retain - local.set $4 - local.get $3 - i32.load - call $~lib/rt/pure/__retain - local.set $5 - local.get $4 - local.get $5 - i32.const 2 - global.set $~argumentsLength - local.get $1 - 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 - call $~lib/rt/pure/__retain - local.set $6 - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - return - end - local.get $3 - local.set $5 - local.get $2 - local.set $4 - local.get $1 - local.set $6 - i32.const 1 - drop - local.get $5 - local.get $4 - local.get $6 - call $~lib/util/sort/insertionSort<~lib/array/Array> - local.get $0 - call $~lib/rt/pure/__retain - ) - (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<~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 - call $~lib/rt/pure/__retain - ) - (func $~lib/array/Array<~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 496 - i32.const 80 - i32.const 104 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array>#__uget - local.set $2 - i32.const 1 - drop - i32.const 0 - i32.eqz - drop - local.get $2 - i32.eqz - if - i32.const 3920 - i32.const 80 - i32.const 108 - i32.const 40 - call $~lib/builtins/abort - unreachable - end - local.get $2 - ) - (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.get $0 - call $~lib/rt/pure/__retain - local.set $0 - i32.const 1 - local.set $2 - local.get $0 - call $~lib/array/Array<~lib/array/Array>#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 - i32.const 1 - i32.sub - call $~lib/array/Array<~lib/array/Array>#__get - local.tee $5 - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/array/Array>#__get - local.tee $6 - i32.const 2 - global.set $~argumentsLength - local.get $1 - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s - if - i32.const 0 - local.set $7 - local.get $0 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - return - end - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/array/assertSorted<~lib/array/Array> (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array>#sort - local.tee $2 - local.get $1 - call $std/array/isSorted<~lib/array/Array> - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - ) - (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.get $0 - i32.eqz - if - i32.const 16 - i32.const 14 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - 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 1073741808 - i32.const 2 - i32.shr_u - i32.gt_u - if - i32.const 32 - i32.const 80 - i32.const 57 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - local.set $2 - local.get $2 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $3 - local.get $3 - i32.const 0 - local.get $2 - call $~lib/memory/memory.fill - local.get $0 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 - i32.load - local.tee $6 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $5 - i32.store - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=12 - local.get $0 - ) - (func $std/array/Proxy#constructor (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.eqz - if - i32.const 4 - i32.const 13 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - local.get $1 - i32.store - local.get $0 - ) - (func $~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - i32.const 1 - drop - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.set $3 - local.get $3 - i32.load - local.set $4 - local.get $2 - local.get $4 - i32.ne - if - local.get $3 - local.get $2 - call $~lib/rt/pure/__retain - i32.store - local.get $4 - call $~lib/rt/pure/__release - end - local.get $2 - call $~lib/rt/pure/__release - ) - (func $~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - 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 496 - i32.const 80 - i32.const 120 - 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 - i32.store offset=12 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array>#__uset - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/array/createReverseOrderedElementsArray (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - i32.const 0 - local.get $0 - call $~lib/array/Array>#constructor - local.set $1 - 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.tee $4 - call $~lib/array/Array>#__set - local.get $4 - call $~lib/rt/pure/__release - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - ) - (func $start:std/array~anonymous|48 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.load - local.get $1 - i32.load - i32.sub - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (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 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retain - 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 - call $~lib/rt/pure/__retain - local.set $8 - local.get $5 - local.get $8 - i32.const 2 - global.set $~argumentsLength - local.get $2 - 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 - local.get $8 - call $~lib/rt/pure/__release - br $while-break|1 - end - local.get $8 - call $~lib/rt/pure/__release - 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 $5 - call $~lib/rt/pure/__release - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - ) - (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 - call $~lib/rt/pure/__retain - 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 - call $~lib/rt/pure/__retain - local.set $4 - local.get $3 - i32.load - call $~lib/rt/pure/__retain - local.set $5 - local.get $4 - local.get $5 - i32.const 2 - global.set $~argumentsLength - local.get $1 - 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 - call $~lib/rt/pure/__retain - local.set $6 - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - return - end - local.get $3 - local.set $5 - local.get $2 - local.set $4 - local.get $1 - local.set $6 - i32.const 1 - drop - local.get $5 - local.get $4 - local.get $6 - call $~lib/util/sort/insertionSort> - local.get $0 - call $~lib/rt/pure/__retain - ) - (func $~lib/array/Array>#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (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 - call $~lib/rt/pure/__retain - ) - (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 496 - i32.const 80 - i32.const 104 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array>#__uget - local.set $2 - i32.const 1 - drop - i32.const 0 - i32.eqz - drop - local.get $2 - i32.eqz - if - i32.const 3920 - i32.const 80 - i32.const 108 - i32.const 40 - call $~lib/builtins/abort - unreachable - end - local.get $2 - ) - (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.get $0 - call $~lib/rt/pure/__retain - local.set $0 - 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.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $2 - i32.const 1 - i32.sub - call $~lib/array/Array>#__get - local.tee $5 - local.get $0 - local.get $2 - call $~lib/array/Array>#__get - local.tee $6 - i32.const 2 - global.set $~argumentsLength - local.get $1 - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s - if - i32.const 0 - local.set $7 - local.get $0 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - return - end - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/array/assertSorted> (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - local.get $1 - call $~lib/array/Array>#sort - local.tee $2 - local.get $1 - call $std/array/isSorted> - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - ) - (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) - 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 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retain - 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 - call $~lib/rt/pure/__retain - local.set $8 - local.get $5 - local.get $8 - i32.const 2 - global.set $~argumentsLength - local.get $2 - 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 - local.get $8 - call $~lib/rt/pure/__release - br $while-break|1 - end - local.get $8 - call $~lib/rt/pure/__release - 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 $5 - call $~lib/rt/pure/__release - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - ) - (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.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.le_s - if - local.get $0 - call $~lib/rt/pure/__retain - 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 - call $~lib/rt/pure/__retain - local.set $4 - local.get $3 - i32.load - call $~lib/rt/pure/__retain - local.set $5 - local.get $4 - local.get $5 - i32.const 2 - global.set $~argumentsLength - local.get $1 - 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 - call $~lib/rt/pure/__retain - local.set $6 - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - return - end - local.get $3 - local.set $5 - local.get $2 - local.set $4 - local.get $1 - local.set $6 - i32.const 1 - drop - local.get $5 - local.get $4 - local.get $6 - call $~lib/util/sort/insertionSort<~lib/string/String | null> - local.get $0 - call $~lib/rt/pure/__retain - ) - (func $~lib/array/Array<~lib/string/String | null>#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/array/Array<~lib/string/String | null>#__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 - call $~lib/rt/pure/__retain - ) - (func $~lib/array/Array<~lib/string/String | null>#__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 496 - i32.const 80 - i32.const 104 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String | null>#__uget - local.set $2 - i32.const 1 - drop - i32.const 1 - i32.eqz - drop - local.get $2 - ) - (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) - (local $6 i32) - (local $7 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - i32.const 1 - local.set $2 - local.get $0 - call $~lib/array/Array<~lib/string/String | null>#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 - i32.const 1 - i32.sub - call $~lib/array/Array<~lib/string/String | null>#__get - local.tee $5 - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/string/String | null>#__get - local.tee $6 - i32.const 2 - global.set $~argumentsLength - local.get $1 - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s - if - i32.const 0 - local.set $7 - local.get $0 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - return - end - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/array/assertSorted<~lib/string/String | null> (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String | null>#sort - local.tee $2 - local.get $1 - call $std/array/isSorted<~lib/string/String | null> - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - ) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - 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 $10 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - 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 $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 - local.set $10 - local.get $0 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $10 - 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 - local.set $7 - local.get $0 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $7 - ) - (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 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - end - local.get $0 - call $~lib/string/String#get:length - local.set $3 - local.get $1 - call $~lib/string/String#get:length - local.set $4 - local.get $3 - i32.eqz - if (result i32) - local.get $4 - i32.eqz - else - i32.const 0 - end - if - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - end - local.get $3 - i32.eqz - if - i32.const -1 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - end - local.get $4 - i32.eqz - if - i32.const 1 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - end - local.get $0 - i32.const 0 - local.get $1 - i32.const 0 - local.get $3 - local.tee $2 - local.get $4 - local.tee $5 - local.get $2 - local.get $5 - i32.lt_s - select - call $~lib/util/string/compareImpl - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $std/array/assertSorted<~lib/string/String | null>@varargs (param $0 i32) (param $1 i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - 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 55 - br $~lib/util/sort/COMPARATOR<~lib/string/String | null>|inlined.0 - end - local.set $1 - end - local.get $0 - local.get $1 - call $std/array/assertSorted<~lib/string/String | null> - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - 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 $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - end - local.get $0 - call $~lib/string/String#get:length - local.set $3 - local.get $3 - local.get $1 - call $~lib/string/String#get:length - i32.ne - if - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - end - local.get $0 - i32.const 0 - local.get $1 - i32.const 0 - local.get $3 - call $~lib/util/string/compareImpl - i32.eqz - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - local.get $1 - call $~lib/string/String.__eq - i32.eqz - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $std/array/isArraysEqual<~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) - (local $7 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $2 - i32.eqz - if - local.get $0 - 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 $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - end - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - 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<~lib/string/String | null>#__get - local.tee $5 - local.get $1 - local.get $3 - call $~lib/array/Array<~lib/string/String | null>#__get - local.tee $6 - call $~lib/string/String.__ne - if - i32.const 0 - local.set $7 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - return - end - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - ) - (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) - (local $5 i32) - (local $6 i32) - local.get $0 - i32.eqz - if - i32.const 16 - i32.const 16 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - 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 1073741808 - i32.const 2 - i32.shr_u - i32.gt_u - if - i32.const 32 - i32.const 80 - i32.const 57 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - local.set $2 - local.get $2 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $3 - local.get $3 - i32.const 0 - local.get $2 - call $~lib/memory/memory.fill - local.get $0 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 - i32.load - local.tee $6 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain - local.set $5 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $5 - i32.store - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=12 - local.get $0 - ) - (func $~lib/string/String#charAt (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - local.get $0 - call $~lib/string/String#get:length - i32.ge_u - if - i32.const 5056 - call $~lib/rt/pure/__retain - return - end - i32.const 2 - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $2 - local.get $2 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $2 - call $~lib/rt/pure/__retain - ) - (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.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 0 - i32.eq - if - i32.const 5168 - local.tee $2 - local.get $1 - local.tee $3 - i32.ne - if - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $3 - call $~lib/rt/pure/__release - end - local.get $2 - local.set $1 - end - local.get $0 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $4 - local.get $1 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $5 - local.get $4 - local.get $5 - i32.add - local.set $6 - local.get $6 - i32.const 0 - i32.eq - if - i32.const 5056 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - end - local.get $6 - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $7 - local.get $7 - local.get $0 - local.get $4 - call $~lib/memory/memory.copy - local.get $7 - local.get $4 - i32.add - local.get $1 - local.get $5 - call $~lib/memory/memory.copy - local.get $7 - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - local.get $0 - i32.const 5168 - local.get $0 - i32.const 0 - i32.ne - select - local.get $1 - call $~lib/string/String#concat - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $std/array/createRandomString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - i32.const 5056 - local.set $1 - 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 - global.get $std/array/charset - call $~lib/math/NativeMath.random - global.get $std/array/charset - 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.tee $5 - call $~lib/string/String.__concat - local.tee $6 - local.tee $7 - local.get $1 - local.tee $8 - i32.ne - if - local.get $7 - call $~lib/rt/pure/__retain - local.set $7 - local.get $8 - call $~lib/rt/pure/__release - end - local.get $7 - local.set $1 - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - ) - (func $~lib/array/Array<~lib/string/String>#__uset (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - i32.const 1 - drop - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.set $3 - local.get $3 - i32.load - local.set $4 - local.get $2 - local.get $4 - i32.ne - if - local.get $3 - local.get $2 - call $~lib/rt/pure/__retain - i32.store - local.get $4 - call $~lib/rt/pure/__release - end - local.get $2 - call $~lib/rt/pure/__release - ) - (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - 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 496 - i32.const 80 - i32.const 120 - 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 - i32.store offset=12 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__uset - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/array/createRandomStringArray (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - i32.const 0 - local.get $0 - call $~lib/array/Array<~lib/string/String>#constructor - local.set $1 - 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 - call $~lib/math/NativeMath.random - f64.const 32 - f64.mul - i32.trunc_f64_s - call $std/array/createRandomString - local.tee $4 - call $~lib/array/Array<~lib/string/String>#__set - local.get $4 - call $~lib/rt/pure/__release - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - ) - (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) - 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 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retain - 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 - call $~lib/rt/pure/__retain - local.set $8 - local.get $5 - local.get $8 - i32.const 2 - global.set $~argumentsLength - local.get $2 - 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 - local.get $8 - call $~lib/rt/pure/__release - br $while-break|1 - end - local.get $8 - call $~lib/rt/pure/__release - 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 $5 - call $~lib/rt/pure/__release - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - ) - (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.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.le_s - if - local.get $0 - call $~lib/rt/pure/__retain - 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 - call $~lib/rt/pure/__retain - local.set $4 - local.get $3 - i32.load - call $~lib/rt/pure/__retain - local.set $5 - local.get $4 - local.get $5 - i32.const 2 - global.set $~argumentsLength - local.get $1 - 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 - call $~lib/rt/pure/__retain - local.set $6 - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - return - end - local.get $3 - local.set $5 - local.get $2 - local.set $4 - local.get $1 - local.set $6 - i32.const 1 - drop - local.get $5 - local.get $4 - local.get $6 - call $~lib/util/sort/insertionSort<~lib/string/String> - local.get $0 - call $~lib/rt/pure/__retain - ) - (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>#__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 - call $~lib/rt/pure/__retain - ) - (func $~lib/array/Array<~lib/string/String>#__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 496 - i32.const 80 - i32.const 104 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>#__uget - local.set $2 - i32.const 1 - drop - i32.const 0 - i32.eqz - drop - local.get $2 - i32.eqz - if - i32.const 3920 - i32.const 80 - i32.const 108 - i32.const 40 - call $~lib/builtins/abort - unreachable - end - local.get $2 - ) - (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) - (local $6 i32) - (local $7 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - i32.const 1 - local.set $2 - local.get $0 - call $~lib/array/Array<~lib/string/String>#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 - i32.const 1 - i32.sub - call $~lib/array/Array<~lib/string/String>#__get - local.tee $5 - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $6 - i32.const 2 - global.set $~argumentsLength - local.get $1 - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s - if - i32.const 0 - local.set $7 - local.get $0 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - return - end - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - ) - (func $std/array/assertSorted<~lib/string/String> (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>#sort - local.tee $2 - local.get $1 - call $std/array/isSorted<~lib/string/String> - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - ) - (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.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - end - local.get $0 - call $~lib/string/String#get:length - local.set $3 - local.get $1 - call $~lib/string/String#get:length - local.set $4 - local.get $3 - i32.eqz - if (result i32) - local.get $4 - i32.eqz - else - i32.const 0 - end - if - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - end - local.get $3 - i32.eqz - if - i32.const -1 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - end - local.get $4 - i32.eqz - if - i32.const 1 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - end - local.get $0 - i32.const 0 - local.get $1 - i32.const 0 - local.get $3 - local.tee $2 - local.get $4 - local.tee $5 - local.get $2 - local.get $5 - i32.lt_s - select - call $~lib/util/string/compareImpl - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - ) - (func $std/array/assertSorted<~lib/string/String>@varargs (param $0 i32) (param $1 i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - 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 56 - br $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.0 - end - local.set $1 - end - local.get $0 - local.get $1 - call $std/array/assertSorted<~lib/string/String> - ) - (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.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 $4 - local.get $3 - local.tee $5 - local.get $4 - local.get $5 - 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 $4 - local.get $3 - local.tee $5 - local.get $4 - local.get $5 - 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 $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 - 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 5056 - call $~lib/rt/pure/__retain - 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 - call $~lib/rt/pure/__retain - return - end - local.get $10 - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $11 - local.get $11 - local.get $0 - local.get $8 - i32.add - local.get $10 - call $~lib/memory/memory.copy - local.get $11 - call $~lib/rt/pure/__retain - ) - (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.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 5056 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $3 - i32.eqz - if - i32.const 5232 - i32.const 5264 - local.get $0 - i32.load8_u - select - call $~lib/rt/pure/__retain - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $5 - i32.const 5 - local.set $6 - local.get $6 - local.get $5 - i32.add - local.get $3 - i32.mul - local.get $6 - i32.add - local.set $7 - local.get $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 - local.set $9 - i32.const 0 - local.set $4 - loop $for-loop|1 - local.get $4 - local.get $3 - i32.lt_s - local.set $12 - local.get $12 - if - local.get $0 - local.get $4 - i32.add - i32.load8_u - local.set $10 - i32.const 4 - local.get $10 - i32.eqz - i32.add - local.set $6 - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.const 5232 - i32.const 5264 - local.get $10 - select - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $9 - local.get $6 - i32.add - local.set $9 - local.get $5 - if - local.get $8 - local.get $9 - 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 $9 - local.get $5 - i32.add - local.set $9 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|1 - end - end - local.get $0 - local.get $3 - i32.add - i32.load8_u - local.set $10 - i32.const 4 - local.get $10 - i32.eqz - i32.add - local.set $6 - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.const 5232 - i32.const 5264 - local.get $10 - select - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $9 - local.get $6 - i32.add - local.set $9 - local.get $7 - local.get $9 - i32.gt_s - if - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $8 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - ) - (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 - 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.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 5604 - local.get $6 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $8 - i32.const 5604 - 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 - local.set $10 - local.get $3 - local.set $1 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 5604 - 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 5604 - 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 6032 - 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 6032 - 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 7072 - 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 7072 - 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/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.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 5408 - i32.const 5536 - i32.const 373 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.eqz - if - i32.const 5600 - 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 - i32.const 0 - local.set $3 - 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 - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $3 - 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 - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $3 - 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 - local.get $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $3 - 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 - if - local.get $3 - i32.const 45 - i32.store16 - end - local.get $3 - call $~lib/rt/pure/__retain - ) - (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 - 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/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) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 5056 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - 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.tee $5 - local.set $6 - local.get $2 - call $~lib/rt/pure/__release - local.get $6 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $7 - i32.const 11 - local.get $7 - i32.add - local.get $3 - i32.mul - i32.const 11 - i32.add - local.set $8 - local.get $8 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $9 - i32.const 0 - local.set $10 - i32.const 0 - 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 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $10 - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $11 - call $~lib/util/number/itoa_buffered - i32.add - local.set $10 - local.get $7 - if - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $7 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $10 - local.get $7 - i32.add - local.set $10 - 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 $11 - local.get $10 - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $11 - call $~lib/util/number/itoa_buffered - i32.add - local.set $10 - local.get $8 - local.get $10 - i32.gt_s - if - local.get $9 - i32.const 0 - local.get $10 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $9 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 - call $~lib/util/string/joinIntegerArray - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - ) - (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.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 5408 - i32.const 5536 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.eqz - if - i32.const 5600 - return - end - i32.const 0 - local.set $2 - local.get $1 - i32.const 10 - i32.eq - if - local.get $0 - call $~lib/util/number/decimalCount32 - local.set $3 - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $2 - 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 - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $2 - 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 - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $2 - 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 $2 - call $~lib/rt/pure/__retain - ) - (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 - 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/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) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 5056 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $3 - 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.tee $5 - local.set $6 - local.get $2 - call $~lib/rt/pure/__release - local.get $6 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $7 - i32.const 10 - local.get $7 - i32.add - local.get $3 - i32.mul - i32.const 10 - i32.add - local.set $8 - local.get $8 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $9 - i32.const 0 - local.set $10 - i32.const 0 - 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 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $10 - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $11 - call $~lib/util/number/itoa_buffered - i32.add - local.set $10 - local.get $7 - if - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $7 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $10 - local.get $7 - i32.add - local.set $10 - 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 $11 - local.get $10 - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $11 - call $~lib/util/number/itoa_buffered - i32.add - local.set $10 - local.get $8 - local.get $10 - i32.gt_s - if - local.get $9 - i32.const 0 - local.get $10 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $9 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 - call $~lib/util/string/joinIntegerArray - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - ) - (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 - 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.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 8488 - 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 - 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 8488 - 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 - ) - (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 - 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 - 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 - 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 - 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 - 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 - 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 7616 - local.get $14 - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 8312 - 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 (param $0 f64) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - f64.const 0 - f64.eq - if - i32.const 7488 - return - end - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - i32.eqz - if - local.get $0 - local.get $0 - f64.ne - if - i32.const 7520 - return - end - i32.const 7552 - i32.const 7600 - local.get $0 - f64.const 0 - f64.lt - select - call $~lib/rt/pure/__retain - return - end - i32.const 28 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $1 - local.get $1 - local.get $0 - call $~lib/util/number/dtoa_core - local.set $2 - local.get $2 - i32.const 28 - i32.eq - if - local.get $1 - call $~lib/rt/pure/__retain - return - end - local.get $1 - i32.const 0 - local.get $2 - call $~lib/string/String#substring - local.set $3 - local.get $1 - call $~lib/rt/tlsf/__free - local.get $3 - ) - (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 $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 - 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 $0 - local.get $1 - call $~lib/util/number/dtoa_core - ) - (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 i32) - (local $9 i32) - (local $10 f64) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 5056 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $3 - i32.eqz - if - local.get $0 - f64.load - call $~lib/util/number/dtoa - local.tee $4 - local.set $5 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $6 - i32.const 28 - local.get $6 - i32.add - local.get $3 - i32.mul - i32.const 28 - i32.add - local.set $7 - local.get $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $8 - i32.const 0 - local.set $9 - i32.const 0 - 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 3 - i32.shl - i32.add - f64.load - local.set $10 - local.get $9 - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $10 - call $~lib/util/number/dtoa_buffered - i32.add - local.set $9 - local.get $6 - if - local.get $8 - local.get $9 - 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 $9 - local.get $6 - i32.add - local.set $9 - 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 3 - i32.shl - i32.add - f64.load - local.set $10 - local.get $9 - local.get $8 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $10 - call $~lib/util/number/dtoa_buffered - i32.add - local.set $9 - local.get $7 - local.get $9 - i32.gt_s - if - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $8 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 1 - drop - local.get $2 - local.get $3 - local.get $1 - call $~lib/util/string/joinFloatArray - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - ) - (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) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 5056 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $3 - i32.eqz - if - local.get $0 - i32.load - local.tee $4 - if (result i32) - local.get $4 - call $~lib/rt/pure/__retain - else - i32.const 5056 - end - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - i32.const 0 - local.set $5 - i32.const 0 - local.set $6 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $1 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $8 - local.get $6 - local.tee $9 - i32.ne - if - local.get $8 - call $~lib/rt/pure/__retain - local.set $8 - local.get $9 - call $~lib/rt/pure/__release - end - local.get $8 - local.set $6 - 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 - local.set $10 - local.get $2 - call $~lib/string/String#get:length - local.set $11 - local.get $5 - local.get $11 - local.get $3 - i32.mul - i32.add - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $12 - i32.const 0 - local.set $4 - loop $for-loop|1 - local.get $4 - local.get $3 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $9 - local.get $6 - local.tee $8 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - local.set $9 - local.get $8 - call $~lib/rt/pure/__release - end - local.get $9 - local.set $6 - local.get $6 - i32.const 0 - i32.ne - if - local.get $6 - call $~lib/string/String#get:length - local.set $9 - local.get $12 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $9 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $10 - local.get $9 - i32.add - local.set $10 - end - local.get $11 - if - local.get $12 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $11 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $10 - local.get $11 - i32.add - local.set $10 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|1 - end - end - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $8 - local.get $6 - local.tee $4 - i32.ne - if - local.get $8 - call $~lib/rt/pure/__retain - local.set $8 - local.get $4 - call $~lib/rt/pure/__release - end - local.get $8 - local.set $6 - local.get $6 - i32.const 0 - i32.ne - if - local.get $12 - local.get $10 - 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 $12 - call $~lib/rt/pure/__retain - local.set $8 - local.get $2 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $8 - ) - (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) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - ) - (func $std/array/Ref#toString (param $0 i32) (result i32) - i32.const 8704 - ) - (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) - (local $10 i32) - (local $11 i32) - (local $12 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 5056 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - i32.const 0 - local.set $5 - local.get $3 - i32.eqz - if - local.get $0 - i32.load - local.tee $4 - local.get $5 - local.tee $6 - i32.ne - if - local.get $4 - call $~lib/rt/pure/__retain - local.set $4 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $4 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if (result i32) - local.get $5 - call $std/array/Ref#toString - else - i32.const 5056 - end - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $4 - return - end - i32.const 5056 - local.set $7 - local.get $2 - call $~lib/string/String#get:length - local.set $8 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $9 - local.get $5 - local.tee $10 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - local.set $9 - local.get $10 - call $~lib/rt/pure/__release - end - local.get $9 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if - local.get $7 - local.get $5 - call $std/array/Ref#toString - local.tee $9 - call $~lib/string/String.__concat - local.tee $10 - local.tee $11 - local.get $7 - local.tee $12 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - local.set $11 - local.get $12 - call $~lib/rt/pure/__release - end - local.get $11 - local.set $7 - local.get $9 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - end - local.get $8 - if - local.get $7 - local.get $2 - call $~lib/string/String.__concat - local.tee $10 - local.tee $12 - local.get $7 - local.tee $9 - i32.ne - if - local.get $12 - call $~lib/rt/pure/__retain - local.set $12 - local.get $9 - call $~lib/rt/pure/__release - end - local.get $12 - local.set $7 - local.get $10 - call $~lib/rt/pure/__release - 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.tee $11 - local.get $5 - local.tee $4 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - local.set $11 - local.get $4 - call $~lib/rt/pure/__release - end - local.get $11 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if - local.get $7 - local.get $5 - call $std/array/Ref#toString - local.tee $11 - call $~lib/string/String.__concat - local.tee $4 - local.tee $9 - local.get $7 - local.tee $6 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - local.set $9 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $9 - local.set $7 - local.get $11 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - end - local.get $7 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - ) - (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) - (local $10 i32) - (local $11 i32) - (local $12 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 5056 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - i32.const 0 - local.set $5 - local.get $3 - i32.eqz - if - local.get $0 - i32.load - local.tee $4 - local.get $5 - local.tee $6 - i32.ne - if - local.get $4 - call $~lib/rt/pure/__retain - local.set $4 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $4 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if (result i32) - local.get $5 - call $std/array/Ref#toString - else - i32.const 5056 - end - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $4 - return - end - i32.const 5056 - local.set $7 - local.get $2 - call $~lib/string/String#get:length - local.set $8 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $9 - local.get $5 - local.tee $10 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - local.set $9 - local.get $10 - call $~lib/rt/pure/__release - end - local.get $9 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if - local.get $7 - local.get $5 - call $std/array/Ref#toString - local.tee $9 - call $~lib/string/String.__concat - local.tee $10 - local.tee $11 - local.get $7 - local.tee $12 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - local.set $11 - local.get $12 - call $~lib/rt/pure/__release - end - local.get $11 - local.set $7 - local.get $9 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - end - local.get $8 - if - local.get $7 - local.get $2 - call $~lib/string/String.__concat - local.tee $10 - local.tee $12 - local.get $7 - local.tee $9 - i32.ne - if - local.get $12 - call $~lib/rt/pure/__retain - local.set $12 - local.get $9 - call $~lib/rt/pure/__release - end - local.get $12 - local.set $7 - local.get $10 - call $~lib/rt/pure/__release - 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.tee $11 - local.get $5 - local.tee $4 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - local.set $11 - local.get $4 - call $~lib/rt/pure/__release - end - local.get $11 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if - local.get $7 - local.get $5 - call $std/array/Ref#toString - local.tee $11 - call $~lib/string/String.__concat - local.tee $4 - local.tee $9 - local.get $7 - local.tee $6 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - local.set $9 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $9 - local.set $7 - local.get $11 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - end - local.get $7 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 5296 - call $~lib/array/Array#join - ) - (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 24 - i32.shl - i32.const 24 - 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 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 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 $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/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) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 5056 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - 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.tee $5 - local.set $6 - local.get $2 - call $~lib/rt/pure/__release - local.get $6 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $7 - i32.const 11 - local.get $7 - i32.add - local.get $3 - i32.mul - i32.const 11 - i32.add - local.set $8 - local.get $8 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $9 - i32.const 0 - local.set $10 - i32.const 0 - 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 0 - i32.shl - i32.add - i32.load8_s - local.set $11 - local.get $10 - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $11 - call $~lib/util/number/itoa_buffered - i32.add - local.set $10 - local.get $7 - if - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $7 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $10 - local.get $7 - i32.add - local.set $10 - 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 $11 - local.get $10 - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $11 - call $~lib/util/number/itoa_buffered - i32.add - local.set $10 - local.get $8 - local.get $10 - i32.gt_s - if - local.get $9 - i32.const 0 - local.get $10 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $9 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 - call $~lib/util/string/joinIntegerArray - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 5296 - call $~lib/array/Array#join - ) - (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.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.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 $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_dec_lut - local.get $3 - ) - (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) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 5056 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - 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.tee $5 - local.set $6 - local.get $2 - call $~lib/rt/pure/__release - local.get $6 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $7 - i32.const 10 - local.get $7 - i32.add - local.get $3 - i32.mul - i32.const 10 - i32.add - local.set $8 - local.get $8 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $9 - i32.const 0 - local.set $10 - i32.const 0 - 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.load16_u - local.set $11 - local.get $10 - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $11 - call $~lib/util/number/itoa_buffered - i32.add - local.set $10 - local.get $7 - if - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $7 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $10 - local.get $7 - i32.add - local.set $10 - 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 1 - i32.shl - i32.add - i32.load16_u - local.set $11 - local.get $10 - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $11 - call $~lib/util/number/itoa_buffered - i32.add - local.set $10 - local.get $8 - local.get $10 - i32.gt_s - if - local.get $9 - i32.const 0 - local.get $10 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $9 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 - call $~lib/util/string/joinIntegerArray - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 5296 - call $~lib/array/Array#join - ) - (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 - 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 5604 - local.get $10 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $12 - i32.const 5604 - 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 5604 - local.get $8 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $12 - i32.const 5604 - 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/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.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 5408 - i32.const 5536 - 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 5600 - return - end - i32.const 0 - local.set $2 - 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 $3 - local.get $3 - call $~lib/util/number/decimalCount32 - local.set $4 - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $2 - 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 - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $2 - 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 - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $2 - 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 - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $2 - local.get $2 - local.get $0 - local.get $4 - local.get $1 - call $~lib/util/number/utoa64_any_core - end - end - local.get $2 - call $~lib/rt/pure/__retain - ) - (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 - 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 - 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 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 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/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i64) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 5056 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $3 - i32.eqz - if - local.get $0 - i64.load - local.set $5 - i32.const 0 - drop - i32.const 8 - i32.const 4 - i32.le_u - drop - local.get $5 - i32.const 10 - call $~lib/util/number/utoa64 - local.tee $4 - local.set $6 - local.get $2 - call $~lib/rt/pure/__release - local.get $6 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $7 - i32.const 20 - local.get $7 - i32.add - local.get $3 - i32.mul - i32.const 20 - i32.add - local.set $8 - local.get $8 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $9 - i32.const 0 - local.set $10 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $11 - local.get $10 - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $11 - call $~lib/util/number/itoa_buffered - i32.add - local.set $10 - local.get $7 - if - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $7 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $10 - local.get $7 - i32.add - local.set $10 - 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 3 - i32.shl - i32.add - i64.load - local.set $11 - local.get $10 - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $11 - call $~lib/util/number/itoa_buffered - i32.add - local.set $10 - local.get $8 - local.get $10 - i32.gt_s - if - local.get $9 - i32.const 0 - local.get $10 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $9 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 - call $~lib/util/string/joinIntegerArray - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 5296 - call $~lib/array/Array#join - ) - (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.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 5408 - i32.const 5536 - i32.const 431 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i64.const 0 - i64.ne - i32.eqz - if - i32.const 5600 - 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 - i32.const 0 - local.set $3 - 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 - local.get $5 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $3 - 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 - local.get $5 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $3 - 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 - local.get $5 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $3 - 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 - local.get $5 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $3 - 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 - call $~lib/rt/pure/__retain - ) - (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 - 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 - 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 $3 - 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 $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 - call $~lib/util/number/utoa64_dec_lut - end - local.get $3 - ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i64) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 5056 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $3 - i32.eqz - if - local.get $0 - i64.load - local.set $5 - i32.const 1 - drop - i32.const 8 - i32.const 4 - i32.le_u - drop - local.get $5 - i32.wrap_i64 - i64.extend_i32_s - i32.const 10 - call $~lib/util/number/itoa64 - local.tee $4 - local.set $6 - local.get $2 - call $~lib/rt/pure/__release - local.get $6 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $7 - i32.const 21 - local.get $7 - i32.add - local.get $3 - i32.mul - i32.const 21 - i32.add - local.set $8 - local.get $8 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $9 - i32.const 0 - local.set $10 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $11 - local.get $10 - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $11 - call $~lib/util/number/itoa_buffered - i32.add - local.set $10 - local.get $7 - if - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $7 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $10 - local.get $7 - i32.add - local.set $10 - 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 3 - i32.shl - i32.add - i64.load - local.set $11 - local.get $10 - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $11 - call $~lib/util/number/itoa_buffered - i32.add - local.set $10 - local.get $8 - local.get $10 - i32.gt_s - if - local.get $9 - i32.const 0 - local.get $10 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $9 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 - call $~lib/util/string/joinIntegerArray - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 5296 - call $~lib/array/Array#join - ) - (func $~lib/array/Array<~lib/string/String | null>#toString (param $0 i32) (result i32) - local.get $0 - i32.const 5296 - call $~lib/array/Array<~lib/string/String | null>#join - ) - (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) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 5056 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - i32.const 0 - local.set $5 - local.get $3 - i32.eqz - if - local.get $0 - i32.load - local.tee $4 - local.get $5 - local.tee $6 - i32.ne - if - local.get $4 - call $~lib/rt/pure/__retain - local.set $4 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $4 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if (result i32) - local.get $5 - call $~lib/array/Array#toString - else - i32.const 5056 - end - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $4 - return - end - i32.const 5056 - local.set $7 - local.get $2 - call $~lib/string/String#get:length - local.set $8 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $9 - local.get $5 - local.tee $10 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - local.set $9 - local.get $10 - call $~lib/rt/pure/__release - end - local.get $9 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if - local.get $7 - local.get $5 - call $~lib/array/Array#toString - local.tee $9 - call $~lib/string/String.__concat - local.tee $10 - local.tee $11 - local.get $7 - local.tee $12 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - local.set $11 - local.get $12 - call $~lib/rt/pure/__release - end - local.get $11 - local.set $7 - local.get $9 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - end - local.get $8 - if - local.get $7 - local.get $2 - call $~lib/string/String.__concat - local.tee $10 - local.tee $12 - local.get $7 - local.tee $9 - i32.ne - if - local.get $12 - call $~lib/rt/pure/__retain - local.set $12 - local.get $9 - call $~lib/rt/pure/__release - end - local.get $12 - local.set $7 - local.get $10 - call $~lib/rt/pure/__release - 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.tee $11 - local.get $5 - local.tee $4 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - local.set $11 - local.get $4 - call $~lib/rt/pure/__release - end - local.get $11 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if - local.get $7 - local.get $5 - call $~lib/array/Array#toString - local.tee $11 - call $~lib/string/String.__concat - local.tee $4 - local.tee $9 - local.get $7 - local.tee $6 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - local.set $9 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $9 - local.set $7 - local.get $11 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - end - local.get $7 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $4 - ) - (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) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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> - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - ) - (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) - local.get $0 - i32.const 5296 - call $~lib/array/Array<~lib/array/Array>#join - ) - (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 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 - local.set $3 - i32.const 1 - 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 - 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/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) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 5056 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - 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.tee $5 - local.set $6 - local.get $2 - call $~lib/rt/pure/__release - local.get $6 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $7 - i32.const 10 - local.get $7 - i32.add - local.get $3 - i32.mul - i32.const 10 - i32.add - local.set $8 - local.get $8 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $9 - i32.const 0 - local.set $10 - i32.const 0 - 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 0 - i32.shl - i32.add - i32.load8_u - local.set $11 - local.get $10 - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $11 - call $~lib/util/number/itoa_buffered - i32.add - local.set $10 - local.get $7 - if - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $7 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $10 - local.get $7 - i32.add - local.set $10 - 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 $11 - local.get $10 - local.get $9 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $11 - call $~lib/util/number/itoa_buffered - i32.add - local.set $10 - local.get $8 - local.get $10 - i32.gt_s - if - local.get $9 - i32.const 0 - local.get $10 - call $~lib/string/String#substring - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $4 - return - end - local.get $9 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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 - call $~lib/util/string/joinIntegerArray - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 5296 - call $~lib/array/Array#join - ) - (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) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 5056 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - i32.const 0 - local.set $5 - local.get $3 - i32.eqz - if - local.get $0 - i32.load - local.tee $4 - local.get $5 - local.tee $6 - i32.ne - if - local.get $4 - call $~lib/rt/pure/__retain - local.set $4 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $4 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if (result i32) - local.get $5 - call $~lib/array/Array#toString - else - i32.const 5056 - end - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $4 - return - end - i32.const 5056 - local.set $7 - local.get $2 - call $~lib/string/String#get:length - local.set $8 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $9 - local.get $5 - local.tee $10 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - local.set $9 - local.get $10 - call $~lib/rt/pure/__release - end - local.get $9 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if - local.get $7 - local.get $5 - call $~lib/array/Array#toString - local.tee $9 - call $~lib/string/String.__concat - local.tee $10 - local.tee $11 - local.get $7 - local.tee $12 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - local.set $11 - local.get $12 - call $~lib/rt/pure/__release - end - local.get $11 - local.set $7 - local.get $9 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - end - local.get $8 - if - local.get $7 - local.get $2 - call $~lib/string/String.__concat - local.tee $10 - local.tee $12 - local.get $7 - local.tee $9 - i32.ne - if - local.get $12 - call $~lib/rt/pure/__retain - local.set $12 - local.get $9 - call $~lib/rt/pure/__release - end - local.get $12 - local.set $7 - local.get $10 - call $~lib/rt/pure/__release - 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.tee $11 - local.get $5 - local.tee $4 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - local.set $11 - local.get $4 - call $~lib/rt/pure/__release - end - local.get $11 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if - local.get $7 - local.get $5 - call $~lib/array/Array#toString - local.tee $11 - call $~lib/string/String.__concat - local.tee $4 - local.tee $9 - local.get $7 - local.tee $6 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - local.set $9 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $9 - local.set $7 - local.get $11 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - end - local.get $7 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $4 - ) - (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) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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> - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - ) - (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) - local.get $0 - i32.const 5296 - call $~lib/array/Array<~lib/array/Array>#join - ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 5296 - call $~lib/array/Array#join - ) - (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) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 5056 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - i32.const 0 - local.set $5 - local.get $3 - i32.eqz - if - local.get $0 - i32.load - local.tee $4 - local.get $5 - local.tee $6 - i32.ne - if - local.get $4 - call $~lib/rt/pure/__retain - local.set $4 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $4 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if (result i32) - local.get $5 - call $~lib/array/Array#toString - else - i32.const 5056 - end - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $4 - return - end - i32.const 5056 - local.set $7 - local.get $2 - call $~lib/string/String#get:length - local.set $8 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $9 - local.get $5 - local.tee $10 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - local.set $9 - local.get $10 - call $~lib/rt/pure/__release - end - local.get $9 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if - local.get $7 - local.get $5 - call $~lib/array/Array#toString - local.tee $9 - call $~lib/string/String.__concat - local.tee $10 - local.tee $11 - local.get $7 - local.tee $12 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - local.set $11 - local.get $12 - call $~lib/rt/pure/__release - end - local.get $11 - local.set $7 - local.get $9 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - end - local.get $8 - if - local.get $7 - local.get $2 - call $~lib/string/String.__concat - local.tee $10 - local.tee $12 - local.get $7 - local.tee $9 - i32.ne - if - local.get $12 - call $~lib/rt/pure/__retain - local.set $12 - local.get $9 - call $~lib/rt/pure/__release - end - local.get $12 - local.set $7 - local.get $10 - call $~lib/rt/pure/__release - 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.tee $11 - local.get $5 - local.tee $4 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - local.set $11 - local.get $4 - call $~lib/rt/pure/__release - end - local.get $11 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if - local.get $7 - local.get $5 - call $~lib/array/Array#toString - local.tee $11 - call $~lib/string/String.__concat - local.tee $4 - local.tee $9 - local.get $7 - local.tee $6 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - local.set $9 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $9 - local.set $7 - local.get $11 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - end - local.get $7 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $4 - ) - (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) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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> - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - ) - (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) - local.get $0 - i32.const 5296 - call $~lib/array/Array<~lib/array/Array>#join - ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> (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.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 5056 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - return - end - i32.const 0 - local.set $5 - local.get $3 - i32.eqz - if - local.get $0 - i32.load - local.tee $4 - local.get $5 - local.tee $6 - i32.ne - if - local.get $4 - call $~lib/rt/pure/__retain - local.set $4 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $4 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if (result i32) - local.get $5 - call $~lib/array/Array<~lib/array/Array>#toString - else - i32.const 5056 - end - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $4 - return - end - i32.const 5056 - local.set $7 - local.get $2 - call $~lib/string/String#get:length - local.set $8 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $9 - local.get $5 - local.tee $10 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - local.set $9 - local.get $10 - call $~lib/rt/pure/__release - end - local.get $9 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if - local.get $7 - local.get $5 - call $~lib/array/Array<~lib/array/Array>#toString - local.tee $9 - call $~lib/string/String.__concat - local.tee $10 - local.tee $11 - local.get $7 - local.tee $12 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - local.set $11 - local.get $12 - call $~lib/rt/pure/__release - end - local.get $11 - local.set $7 - local.get $9 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - end - local.get $8 - if - local.get $7 - local.get $2 - call $~lib/string/String.__concat - local.tee $10 - local.tee $12 - local.get $7 - local.tee $9 - i32.ne - if - local.get $12 - call $~lib/rt/pure/__retain - local.set $12 - local.get $9 - call $~lib/rt/pure/__release - end - local.get $12 - local.set $7 - local.get $10 - call $~lib/rt/pure/__release - 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.tee $11 - local.get $5 - local.tee $4 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - local.set $11 - local.get $4 - call $~lib/rt/pure/__release - end - local.get $11 - local.set $5 - local.get $5 - i32.const 0 - i32.ne - if - local.get $7 - local.get $5 - call $~lib/array/Array<~lib/array/Array>#toString - local.tee $11 - call $~lib/string/String.__concat - local.tee $4 - local.tee $9 - local.get $7 - local.tee $6 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - local.set $9 - local.get $6 - call $~lib/rt/pure/__release - end - local.get $9 - local.set $7 - local.get $11 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - end - local.get $7 - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $4 - ) - (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) - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - 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<~lib/array/Array>> - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (param $0 i32) (result i32) - local.get $0 - i32.const 5296 - call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join - ) - (func $~lib/array/Array<~lib/array/Array>#flat (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - i32.const 1 - i32.eqz - drop - local.get $0 - i32.load offset=12 - local.set $1 - local.get $0 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $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.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - local.get $3 - local.get $6 - i32.const 0 - i32.eq - if (result i32) - i32.const 0 - else - local.get $6 - i32.load offset=12 - end - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.const 2 - i32.shl - local.set $7 - local.get $7 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $8 - i32.const 16 - i32.const 3 - call $~lib/rt/tlsf/__alloc - local.set $9 - local.get $9 - local.get $3 - i32.store offset=12 - local.get $9 - local.get $7 - i32.store offset=8 - local.get $9 - local.get $8 - i32.store offset=4 - local.get $9 - local.get $8 - call $~lib/rt/pure/__retain - i32.store - i32.const 0 - local.set $10 - 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 - block $for-continue|1 - local.get $2 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - local.get $6 - i32.const 0 - i32.eq - if - br $for-continue|1 - end - local.get $6 - i32.load offset=8 - local.set $11 - local.get $8 - local.get $10 - i32.add - local.get $6 - i32.load offset=4 - local.get $11 - call $~lib/memory/memory.copy - local.get $10 - local.get $11 - i32.add - local.set $10 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|1 - end - end - i32.const 0 - drop - local.get $9 - call $~lib/rt/pure/__retain - ) - (func $~lib/array/Array<~lib/array/Array<~lib/string/String | null>>#flat (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) - i32.const 1 - i32.eqz - drop - local.get $0 - i32.load offset=12 - local.set $1 - local.get $0 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $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.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - local.get $3 - local.get $6 - i32.const 0 - i32.eq - if (result i32) - i32.const 0 - else - local.get $6 - i32.load offset=12 - end - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $3 - i32.const 2 - i32.shl - local.set $7 - local.get $7 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $8 - i32.const 16 - i32.const 15 - call $~lib/rt/tlsf/__alloc - local.set $9 - local.get $9 - local.get $3 - i32.store offset=12 - local.get $9 - local.get $7 - i32.store offset=8 - local.get $9 - local.get $8 - i32.store offset=4 - local.get $9 - local.get $8 - call $~lib/rt/pure/__retain - i32.store - i32.const 0 - local.set $10 - 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 - block $for-continue|1 - local.get $2 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - local.get $6 - i32.const 0 - i32.eq - if - br $for-continue|1 - end - local.get $6 - i32.load offset=8 - local.set $11 - local.get $8 - local.get $10 - i32.add - local.get $6 - i32.load offset=4 - local.get $11 - call $~lib/memory/memory.copy - local.get $10 - local.get $11 - i32.add - local.set $10 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|1 - end - end - i32.const 1 - drop - i32.const 0 - local.set $4 - loop $for-loop|2 - local.get $4 - local.get $3 - i32.lt_s - local.set $5 - local.get $5 - if - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/rt/pure/__retain - drop - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|2 - end - end - local.get $9 - call $~lib/rt/pure/__retain - ) - (func $start:std/array - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 i32) - (local $17 i32) - (local $18 i32) - (local $19 i32) - (local $20 i32) - (local $21 i32) - (local $22 i32) - (local $23 i32) - (local $24 i32) - (local $25 i32) - (local $26 i32) - (local $27 i32) - (local $28 i32) - (local $29 i32) - (local $30 i32) - (local $31 i32) - (local $32 i32) - (local $33 i32) - (local $34 i32) - (local $35 i32) - (local $36 i32) - (local $37 i32) - (local $38 i32) - (local $39 i32) - (local $40 i32) - (local $41 i32) - (local $42 i32) - (local $43 i32) - (local $44 i32) - (local $45 i32) - (local $46 i32) - (local $47 i32) - (local $48 i32) - (local $49 i32) - (local $50 i32) - (local $51 i32) - (local $52 i32) - (local $53 i32) - (local $54 i32) - (local $55 i32) - (local $56 i32) - (local $57 i32) - (local $58 i32) - (local $59 i32) - (local $60 i32) - (local $61 i32) - (local $62 i32) - (local $63 i32) - i32.const 0 - i32.const 0 - i32.eq - drop - i32.const 4 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - i32.const 0 - i32.const 0 - call $~lib/array/Array#constructor - global.set $std/array/arr - i32.const 0 - call $~lib/array/Array.isArray<~lib/array/Array | null> - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 0 - call $std/array/Ref#constructor - local.tee $0 - call $~lib/array/Array.isArray - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 47 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - call $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 48 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - call $~lib/array/Array.isArray - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 400 - call $~lib/array/Array.isArray<~lib/string/String> - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 50 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array.isArray<~lib/array/Array> - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 52 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 5 - i32.const 0 - i32.const 6 - i32.const 432 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - i32.const 1 - i32.const 1 - i32.const 3 - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $0 - i32.const 5 - i32.const 0 - i32.const 6 - i32.const 464 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $2 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $0 - i32.const 5 - i32.const 0 - i32.const 6 - i32.const 560 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $3 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 63 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $0 - i32.const 5 - i32.const 0 - i32.const 6 - i32.const 592 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $4 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 66 - 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/array/Array#fill - call $~lib/rt/pure/__release - local.get $0 - i32.const 5 - i32.const 0 - i32.const 6 - i32.const 624 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 69 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $0 - i32.const 5 - i32.const 0 - i32.const 6 - i32.const 656 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 72 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 688 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $5 - local.get $5 - i32.const 1 - i32.const 1 - i32.const 3 - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $5 - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 736 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $4 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 79 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const 0 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $5 - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 784 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $3 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 82 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $5 - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 832 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $2 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 85 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const 2 - i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $5 - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 880 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 88 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $5 - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 928 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 91 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $5 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 97 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 98 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 42 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 42 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 102 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 103 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 104 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - local.set $1 - local.get $1 - i32.const 42 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 108 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 109 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 110 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - call $~lib/array/Array#push - drop - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 114 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 115 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 116 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 44 - call $~lib/array/Array#push - drop - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 120 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 121 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 122 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 123 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 45 - call $~lib/array/Array#push - drop - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 127 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 128 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 129 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 130 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#__get - i32.const 45 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 131 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - i32.const 2 - i32.const 8 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.load offset=4 - local.set $0 - local.get $0 - i32.const 0 - i32.const 0 - call $std/array/Ref#constructor - i32.store - local.get $0 - i32.const 0 - i32.const 0 - call $std/array/Ref#constructor - i32.store offset=4 - local.get $1 - local.set $0 - local.get $0 - i32.const 0 - call $~lib/array/Array#set:length - local.get $0 - call $~lib/array/Array#get:length - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 139 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - i32.const 0 - i32.const 0 - call $~lib/array/Array#constructor - local.set $0 - global.get $std/array/arr - local.get $0 - call $~lib/array/Array#concat - local.set $1 - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 148 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 149 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 150 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 1024 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $3 - call $~lib/array/Array#concat - call $~lib/rt/pure/__release - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 153 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 0 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 155 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 156 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - call $~lib/array/Array#__get - i32.const 45 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 157 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 46 - call $~lib/array/Array#push - drop - local.get $0 - i32.const 47 - call $~lib/array/Array#push - drop - global.get $std/array/arr - local.get $0 - call $~lib/array/Array#concat - local.set $6 - local.get $1 - call $~lib/rt/pure/__release - local.get $6 - local.set $1 - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 164 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/array/Array#get:length - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 165 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/array/Array#get:length - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 166 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 0 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 167 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 168 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - call $~lib/array/Array#__get - i32.const 45 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 169 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 3 - call $~lib/array/Array#__get - i32.const 46 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 170 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - call $~lib/array/Array#__get - i32.const 47 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 171 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/array/Array#pop - drop - local.get $1 - call $~lib/array/Array#get:length - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 174 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 1040 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $2 - local.get $2 - call $~lib/array/Array#get:length - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 182 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - global.get $std/array/arr - call $~lib/array/Array#concat - local.set $5 - local.get $1 - call $~lib/rt/pure/__release - local.get $5 - local.set $1 - local.get $1 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 184 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/array/Array#get:length - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 185 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1056 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $3 - local.get $3 - i32.const 0 - i32.const 3 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.tee $2 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1104 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 192 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1152 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $4 - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - local.set $3 - local.get $3 - i32.const 1 - i32.const 3 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.tee $4 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1200 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 194 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1248 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $5 - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - local.set $3 - local.get $3 - i32.const 1 - i32.const 2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.tee $5 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1296 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 196 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1344 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $6 - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - local.set $3 - local.get $3 - i32.const 2 - i32.const 2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.tee $6 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1392 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 198 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1440 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - local.set $3 - local.get $3 - i32.const 0 - i32.const 3 - i32.const 4 - call $~lib/array/Array#copyWithin - local.tee $8 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1488 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $11 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 200 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1536 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $10 - local.get $3 - call $~lib/rt/pure/__release - local.get $10 - local.set $3 - local.get $3 - i32.const 1 - i32.const 3 - i32.const 4 - call $~lib/array/Array#copyWithin - local.tee $10 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1584 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $13 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 202 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1632 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $12 - local.get $3 - call $~lib/rt/pure/__release - local.get $12 - local.set $3 - local.get $3 - i32.const 1 - i32.const 2 - i32.const 4 - call $~lib/array/Array#copyWithin - local.tee $12 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1680 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $15 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 204 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1728 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $14 - local.get $3 - call $~lib/rt/pure/__release - local.get $14 - local.set $3 - local.get $3 - i32.const 0 - i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.tee $14 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1776 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $17 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 206 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1824 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $16 - local.get $3 - call $~lib/rt/pure/__release - local.get $16 - local.set $3 - local.get $3 - i32.const 0 - i32.const -2 - i32.const -1 - call $~lib/array/Array#copyWithin - local.tee $16 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1872 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $19 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 208 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1920 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $18 - local.get $3 - call $~lib/rt/pure/__release - local.get $18 - local.set $3 - local.get $3 - i32.const -4 - i32.const -3 - i32.const -2 - call $~lib/array/Array#copyWithin - local.tee $18 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1968 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $21 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 210 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2016 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $20 - local.get $3 - call $~lib/rt/pure/__release - local.get $20 - local.set $3 - local.get $3 - i32.const -4 - i32.const -3 - i32.const -1 - call $~lib/array/Array#copyWithin - local.tee $20 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2064 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $23 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 212 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2112 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $22 - local.get $3 - call $~lib/rt/pure/__release - local.get $22 - local.set $3 - local.get $3 - i32.const -4 - i32.const -3 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.tee $22 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2160 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $25 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 214 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $11 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $13 - call $~lib/rt/pure/__release - local.get $12 - call $~lib/rt/pure/__release - local.get $15 - call $~lib/rt/pure/__release - local.get $14 - call $~lib/rt/pure/__release - local.get $17 - call $~lib/rt/pure/__release - local.get $16 - call $~lib/rt/pure/__release - local.get $19 - call $~lib/rt/pure/__release - local.get $18 - call $~lib/rt/pure/__release - local.get $21 - call $~lib/rt/pure/__release - local.get $20 - call $~lib/rt/pure/__release - local.get $23 - call $~lib/rt/pure/__release - local.get $22 - call $~lib/rt/pure/__release - local.get $25 - call $~lib/rt/pure/__release - global.get $std/array/arr - i32.const 42 - call $~lib/array/Array#unshift - drop - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 222 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 223 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 42 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 224 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 225 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 226 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#__get - i32.const 45 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 227 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 41 - call $~lib/array/Array#unshift - drop - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 231 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 232 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 41 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 233 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 42 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 234 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 235 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 236 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 4 - call $~lib/array/Array#__get - i32.const 45 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 237 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#shift - global.set $std/array/i - global.get $std/array/i - i32.const 41 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 246 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 247 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 248 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 42 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 249 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 250 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 251 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#__get - i32.const 45 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 252 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - global.set $std/array/i - global.get $std/array/i - i32.const 45 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 256 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 257 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 258 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 42 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 259 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 260 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 261 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#reverse - call $~lib/rt/pure/__release - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 269 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 270 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 271 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 272 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#__get - i32.const 42 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 273 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 44 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 44 - i32.const 0 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 283 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 42 - i32.const 0 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 286 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 45 - i32.const 0 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 289 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const 100 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 292 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const -100 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 295 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const -2 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 298 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const -4 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 301 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const 0 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 304 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const 1 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 307 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const 2 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 310 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 2 - i32.const 9 - i32.const 2208 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $22 - f32.const nan:0x400000 - i32.const 0 - call $~lib/array/Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 312 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 3 - i32.const 10 - i32.const 2240 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $23 - f64.const nan:0x8000000000000 - i32.const 0 - call $~lib/array/Array#indexOf - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 313 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $22 - call $~lib/rt/pure/__release - local.get $23 - call $~lib/rt/pure/__release - global.get $std/array/arr - i32.const 44 - i32.const 0 - call $~lib/array/Array#includes - local.set $23 - local.get $23 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 320 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 42 - i32.const 0 - call $~lib/array/Array#includes - local.set $23 - local.get $23 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 323 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 45 - i32.const 0 - call $~lib/array/Array#includes - local.set $23 - local.get $23 - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 326 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const 100 - call $~lib/array/Array#includes - local.set $23 - local.get $23 - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 329 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const -100 - call $~lib/array/Array#includes - local.set $23 - local.get $23 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 332 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const -2 - call $~lib/array/Array#includes - local.set $23 - local.get $23 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 335 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const -4 - call $~lib/array/Array#includes - local.set $23 - local.get $23 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 338 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const 0 - call $~lib/array/Array#includes - local.set $23 - local.get $23 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 341 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const 1 - call $~lib/array/Array#includes - local.set $23 - local.get $23 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const 2 - call $~lib/array/Array#includes - local.set $23 - local.get $23 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 347 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 2 - i32.const 9 - i32.const 2272 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $25 - f32.const nan:0x400000 - i32.const 0 - call $~lib/array/Array#includes - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 349 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 3 - i32.const 10 - i32.const 2304 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $20 - f64.const nan:0x8000000000000 - i32.const 0 - call $~lib/array/Array#includes - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 350 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - i32.const 1 - call $~lib/array/Array#splice - call $~lib/rt/pure/__release - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 354 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 355 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 356 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 42 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 357 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $25 - call $~lib/rt/pure/__release - local.get $20 - call $~lib/rt/pure/__release - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2336 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $25 - local.get $25 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#splice - local.tee $20 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2384 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $22 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 364 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $25 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 2432 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $21 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 365 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2448 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $24 - local.get $25 - call $~lib/rt/pure/__release - local.get $24 - local.set $25 - local.get $25 - i32.const 0 - i32.const 0 - call $~lib/array/Array#splice - local.tee $24 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 2496 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $23 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 368 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $25 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2512 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $19 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 369 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2560 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $3 - local.get $25 - call $~lib/rt/pure/__release - local.get $3 - local.set $25 - local.get $25 - i32.const 2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#splice - local.tee $3 - i32.const 3 - i32.const 2 - i32.const 3 - i32.const 2608 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $18 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 372 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $25 - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 2640 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $17 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 373 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2672 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $2 - local.get $25 - call $~lib/rt/pure/__release - local.get $2 - local.set $25 - local.get $25 - i32.const 2 - i32.const 2 - call $~lib/array/Array#splice - local.tee $2 - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 2720 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $16 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 376 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $25 - i32.const 3 - i32.const 2 - i32.const 3 - i32.const 2752 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $15 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 377 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2784 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $0 - local.get $25 - call $~lib/rt/pure/__release - local.get $0 - local.set $25 - local.get $25 - i32.const 0 - i32.const 1 - call $~lib/array/Array#splice - local.tee $0 - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 2832 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $14 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 380 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $25 - i32.const 4 - i32.const 2 - i32.const 3 - i32.const 2864 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $13 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 381 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2896 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $4 - local.get $25 - call $~lib/rt/pure/__release - local.get $4 - local.set $25 - local.get $25 - i32.const -1 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#splice - local.tee $4 - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 2944 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $12 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 384 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $25 - i32.const 4 - i32.const 2 - i32.const 3 - i32.const 2976 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $11 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 385 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3008 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $1 - local.get $25 - call $~lib/rt/pure/__release - local.get $1 - local.set $25 - local.get $25 - i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#splice - local.tee $1 - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 3056 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $10 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 388 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $25 - i32.const 3 - i32.const 2 - i32.const 3 - i32.const 3088 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 389 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3120 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $5 - local.get $25 - call $~lib/rt/pure/__release - local.get $5 - local.set $25 - local.get $25 - i32.const -2 - i32.const 1 - call $~lib/array/Array#splice - local.tee $5 - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 3168 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 392 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $25 - i32.const 4 - i32.const 2 - i32.const 3 - i32.const 3200 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 393 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3232 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $6 - local.get $25 - call $~lib/rt/pure/__release - local.get $6 - local.set $25 - local.get $25 - i32.const -7 - i32.const 1 - call $~lib/array/Array#splice - local.tee $6 - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 3280 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $27 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 396 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $25 - i32.const 4 - i32.const 2 - i32.const 3 - i32.const 3312 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $28 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 397 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3344 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $26 - local.get $25 - call $~lib/rt/pure/__release - local.get $26 - local.set $25 - local.get $25 - i32.const -2 - i32.const -1 - call $~lib/array/Array#splice - local.tee $26 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 3392 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $30 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 400 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $25 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3408 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $31 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 401 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3456 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $29 - local.get $25 - call $~lib/rt/pure/__release - local.get $29 - local.set $25 - local.get $25 - i32.const 1 - i32.const -2 - call $~lib/array/Array#splice - local.tee $29 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 3504 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $33 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 404 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $25 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3520 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $34 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 405 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3568 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $32 - local.get $25 - call $~lib/rt/pure/__release - local.get $32 - local.set $25 - local.get $25 - i32.const 4 - i32.const 0 - call $~lib/array/Array#splice - local.tee $32 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 3616 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $36 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 408 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $25 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3632 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $37 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 409 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3680 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $35 - local.get $25 - call $~lib/rt/pure/__release - local.get $35 - local.set $25 - local.get $25 - i32.const 7 - i32.const 0 - call $~lib/array/Array#splice - local.tee $35 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 3728 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $39 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 412 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $25 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3744 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $40 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3792 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $38 - local.get $25 - call $~lib/rt/pure/__release - local.get $38 - local.set $25 - local.get $25 - i32.const 7 - i32.const 5 - call $~lib/array/Array#splice - local.tee $38 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 3840 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $42 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $25 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3856 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $43 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 2 - i32.const 8 - i32.const 3904 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $45 - local.get $45 - i32.const 1 - i32.const 2 - call $~lib/array/Array#splice - local.set $46 - local.get $46 - call $~lib/array/Array#get:length - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 421 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $45 - call $~lib/array/Array#get:length - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 422 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 8 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $44 - local.get $44 - i32.load offset=4 - local.set $41 - local.get $41 - i32.const 0 - i32.const 1 - call $std/array/Ref#constructor - i32.store - local.get $41 - i32.const 0 - i32.const 2 - call $std/array/Ref#constructor - i32.store offset=4 - local.get $41 - i32.const 0 - i32.const 3 - call $std/array/Ref#constructor - i32.store offset=8 - local.get $41 - i32.const 0 - i32.const 4 - call $std/array/Ref#constructor - i32.store offset=12 - local.get $41 - i32.const 0 - i32.const 5 - call $std/array/Ref#constructor - i32.store offset=16 - local.get $44 - local.set $44 - local.get $45 - call $~lib/rt/pure/__release - local.get $44 - local.set $45 - local.get $45 - i32.const 2 - i32.const 2 - call $~lib/array/Array#splice - local.set $41 - local.get $46 - call $~lib/rt/pure/__release - local.get $41 - local.set $46 - local.get $46 - call $~lib/array/Array#get:length - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 427 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $46 - i32.const 0 - call $~lib/array/Array#__get - local.tee $41 - i32.load - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 428 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $46 - i32.const 1 - call $~lib/array/Array#__get - local.tee $44 - i32.load - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 429 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $45 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 431 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $45 - i32.const 0 - call $~lib/array/Array#__get - local.tee $47 - i32.load - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 432 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $45 - i32.const 1 - call $~lib/array/Array#__get - local.tee $48 - i32.load - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 433 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $45 - i32.const 2 - call $~lib/array/Array#__get - local.tee $49 - i32.load - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 434 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 2 - i32.const 11 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $50 - local.get $50 - i32.load offset=4 - local.set $51 - local.get $51 - i32.const 0 - i32.const 1 - call $std/array/Ref#constructor - i32.store - local.get $51 - i32.const 0 - call $~lib/rt/pure/__retain - i32.store offset=4 - local.get $51 - i32.const 0 - i32.const 2 - call $std/array/Ref#constructor - i32.store offset=8 - local.get $50 - local.set $52 - local.get $52 - i32.const 0 - i32.const 1 - call $~lib/array/Array#splice - local.set $53 - local.get $53 - call $~lib/array/Array#get:length - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 439 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $53 - i32.const 0 - call $~lib/array/Array#__get - local.tee $51 - local.tee $50 - if (result i32) - local.get $50 - else - i32.const 0 - i32.const 288 - i32.const 440 - i32.const 10 - call $~lib/builtins/abort - unreachable - end - i32.load - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 440 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $52 - call $~lib/array/Array#get:length - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 442 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $52 - i32.const 0 - call $~lib/array/Array#__get - local.tee $50 - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 443 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $52 - i32.const 1 - call $~lib/array/Array#__get - local.tee $54 - local.tee $55 - if (result i32) - local.get $55 - else - i32.const 0 - i32.const 288 - i32.const 444 - i32.const 10 - call $~lib/builtins/abort - unreachable - end - i32.load - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 444 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $25 - call $~lib/rt/pure/__release - local.get $20 - call $~lib/rt/pure/__release - local.get $22 - call $~lib/rt/pure/__release - local.get $21 - call $~lib/rt/pure/__release - local.get $24 - call $~lib/rt/pure/__release - local.get $23 - call $~lib/rt/pure/__release - local.get $19 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $18 - call $~lib/rt/pure/__release - local.get $17 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $16 - call $~lib/rt/pure/__release - local.get $15 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $14 - call $~lib/rt/pure/__release - local.get $13 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $12 - call $~lib/rt/pure/__release - local.get $11 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $27 - call $~lib/rt/pure/__release - local.get $28 - call $~lib/rt/pure/__release - local.get $26 - call $~lib/rt/pure/__release - local.get $30 - call $~lib/rt/pure/__release - local.get $31 - call $~lib/rt/pure/__release - local.get $29 - call $~lib/rt/pure/__release - local.get $33 - call $~lib/rt/pure/__release - local.get $34 - call $~lib/rt/pure/__release - local.get $32 - call $~lib/rt/pure/__release - local.get $36 - call $~lib/rt/pure/__release - local.get $37 - call $~lib/rt/pure/__release - local.get $35 - call $~lib/rt/pure/__release - local.get $39 - call $~lib/rt/pure/__release - local.get $40 - call $~lib/rt/pure/__release - local.get $38 - call $~lib/rt/pure/__release - local.get $42 - call $~lib/rt/pure/__release - local.get $43 - call $~lib/rt/pure/__release - local.get $41 - call $~lib/rt/pure/__release - local.get $44 - call $~lib/rt/pure/__release - local.get $47 - call $~lib/rt/pure/__release - local.get $48 - call $~lib/rt/pure/__release - local.get $49 - call $~lib/rt/pure/__release - local.get $51 - call $~lib/rt/pure/__release - local.get $50 - call $~lib/rt/pure/__release - local.get $54 - call $~lib/rt/pure/__release - global.get $std/array/arr - i32.const 0 - i32.const 0 - call $~lib/array/Array#__set - global.get $std/array/arr - i32.const 1 - i32.const 1 - call $~lib/array/Array#__set - global.get $std/array/arr - i32.const 2 - i32.const 2 - call $~lib/array/Array#__set - global.get $std/array/arr - i32.const 3 - i32.const 3 - call $~lib/array/Array#__set - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#findIndex - global.set $std/array/i - global.get $std/array/i - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 457 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#findIndex - global.set $std/array/i - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 460 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#findIndex - global.set $std/array/i - global.get $std/array/i - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 463 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 4 - call $~lib/array/Array#findIndex - global.set $std/array/i - global.get $std/array/i - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 471 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 472 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 5 - call $~lib/array/Array#findIndex - global.set $std/array/i - global.get $std/array/i - i32.const -1 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 474 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - i32.const 6 - call $~lib/array/Array#findIndex - global.set $std/array/i - global.get $std/array/i - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 487 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 488 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 7 - call $~lib/array/Array#every - local.set $54 - local.get $54 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 498 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 8 - call $~lib/array/Array#every - local.set $54 - local.get $54 - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 501 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 9 - call $~lib/array/Array#every - local.set $54 - local.get $54 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 509 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 510 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 10 - call $~lib/array/Array#every - local.set $54 - local.get $54 - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 512 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - i32.const 11 - call $~lib/array/Array#every - local.set $54 - local.get $54 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 525 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 526 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 12 - call $~lib/array/Array#some - local.set $54 - local.get $54 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 536 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 13 - call $~lib/array/Array#some - local.set $54 - local.get $54 - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 539 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 14 - call $~lib/array/Array#some - local.set $54 - local.get $54 - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 547 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 548 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 15 - call $~lib/array/Array#some - local.set $54 - local.get $54 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 550 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - i32.const 16 - call $~lib/array/Array#some - local.set $54 - local.get $54 - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 563 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 564 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop - i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 17 - call $~lib/array/Array#forEach - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 18 - call $~lib/array/Array#forEach - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 584 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 585 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 19 - call $~lib/array/Array#forEach - global.get $std/array/i - i32.const 406 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 588 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 20 - call $~lib/array/Array#forEach - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 602 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 21 - call $~lib/array/Array#forEach - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 628 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $54 - loop $for-loop|0 - local.get $54 - i32.const 100 - i32.lt_s - local.set $50 - local.get $50 - if - global.get $std/array/arr - call $~lib/array/Array#pop - drop - local.get $54 - i32.const 1 - i32.add - local.set $54 - br $for-loop|0 - end - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 22 - call $~lib/array/Array#map - local.set $54 - local.get $54 - call $~lib/array/Array#get:length - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 642 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $54 - i32.const 0 - call $~lib/array/Array#__get - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - f32.convert_i32_s - f32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 643 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 23 - call $~lib/array/Array#map - call $~lib/rt/pure/__release - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 652 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 653 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 24 - call $~lib/array/Array#map - call $~lib/rt/pure/__release - global.get $std/array/i - i32.const 406 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 660 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 25 - call $~lib/array/Array#map - call $~lib/rt/pure/__release - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 675 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 676 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop - local.get $54 - call $~lib/rt/pure/__release - global.get $std/array/arr - i32.const 26 - call $~lib/array/Array#filter - local.set $54 - local.get $54 - call $~lib/array/Array#get:length - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 686 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 27 - call $~lib/array/Array#filter - call $~lib/rt/pure/__release - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 695 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 696 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 28 - call $~lib/array/Array#filter - call $~lib/rt/pure/__release - global.get $std/array/i - i32.const 406 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 703 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 29 - call $~lib/array/Array#filter - call $~lib/rt/pure/__release - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 718 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 719 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop - local.get $54 - call $~lib/rt/pure/__release - global.get $std/array/arr - i32.const 30 - i32.const 0 - call $~lib/array/Array#reduce - global.set $std/array/i - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 729 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 31 - i32.const 4 - call $~lib/array/Array#reduce - global.set $std/array/i - global.get $std/array/i - i32.const 10 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 733 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 32 - i32.const 0 - call $~lib/array/Array#reduce - local.set $54 - local.get $54 - i32.const 0 - i32.ne - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 736 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 33 - i32.const 0 - call $~lib/array/Array#reduce - local.set $54 - local.get $54 - i32.const 0 - i32.ne - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 739 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 34 - i32.const 0 - call $~lib/array/Array#reduce - global.set $std/array/i - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 747 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 748 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 35 - i32.const 0 - call $~lib/array/Array#reduce - global.set $std/array/i - global.get $std/array/i - i32.const 10 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 750 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - i32.const 36 - i32.const 0 - call $~lib/array/Array#reduce - global.set $std/array/i - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 763 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 764 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 37 - i32.const 0 - call $~lib/array/Array#reduceRight - global.set $std/array/i - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 774 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 38 - i32.const 4 - call $~lib/array/Array#reduceRight - global.set $std/array/i - global.get $std/array/i - i32.const 10 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 778 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 39 - i32.const 0 - call $~lib/array/Array#reduceRight - local.set $54 - local.get $54 - i32.const 0 - i32.ne - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 781 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 40 - i32.const 0 - call $~lib/array/Array#reduceRight - local.set $54 - local.get $54 - i32.const 0 - i32.ne - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 784 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 41 - i32.const 0 - call $~lib/array/Array#reduceRight - global.set $std/array/i - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 792 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 793 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 42 - i32.const 0 - call $~lib/array/Array#reduceRight - global.set $std/array/i - global.get $std/array/i - i32.const 10 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 795 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - i32.const 43 - i32.const 0 - call $~lib/array/Array#reduceRight - global.set $std/array/i - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 808 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 809 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop - call $~lib/bindings/Math/random - i64.reinterpret_f64 - call $~lib/math/NativeMath.seedRandom - i32.const 8 - i32.const 2 - i32.const 9 - i32.const 4272 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $50 - local.get $50 - i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $~lib/array/Array#sort@varargs - call $~lib/rt/pure/__release - local.get $50 - i32.const 8 - i32.const 2 - i32.const 9 - i32.const 4320 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $51 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 898 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 8 - i32.const 3 - i32.const 10 - i32.const 4368 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $49 - local.get $49 - i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $~lib/array/Array#sort@varargs - call $~lib/rt/pure/__release - local.get $49 - i32.const 8 - i32.const 3 - i32.const 10 - i32.const 4448 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $48 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 902 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 4528 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $47 - local.get $47 - i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $~lib/array/Array#sort@varargs - call $~lib/rt/pure/__release - local.get $47 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 4576 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $44 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 906 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 4624 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $41 - local.get $41 - i32.const 0 - global.set $~argumentsLength - i32.const 0 - call $~lib/array/Array#sort@varargs - call $~lib/rt/pure/__release - local.get $41 - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 4672 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $43 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 910 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 4720 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $42 - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 4736 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $38 - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 4768 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $40 - i32.const 4 - i32.const 2 - i32.const 3 - i32.const 4800 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $39 - i32.const 4 - i32.const 2 - i32.const 3 - i32.const 4832 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $35 - i32.const 64 - call $std/array/createReverseOrderedArray - local.set $54 - i32.const 128 - call $std/array/createReverseOrderedArray - local.set $37 - i32.const 1024 - call $std/array/createReverseOrderedArray - local.set $36 - i32.const 10000 - call $std/array/createReverseOrderedArray - local.set $32 - i32.const 512 - call $std/array/createRandomOrderedArray - local.set $34 - local.get $42 - call $std/array/assertSortedDefault - local.get $38 - call $std/array/assertSortedDefault - local.get $38 - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 4864 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $29 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 930 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $40 - call $std/array/assertSortedDefault - local.get $40 - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 4896 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $31 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 933 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $39 - call $std/array/assertSortedDefault - local.get $39 - local.get $35 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 936 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $54 - call $std/array/assertSortedDefault - local.get $54 - local.get $35 - i32.const 4 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 939 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $37 - call $std/array/assertSortedDefault - local.get $37 - local.get $35 - i32.const 4 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 942 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $36 - call $std/array/assertSortedDefault - local.get $36 - local.get $35 - i32.const 4 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 945 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $32 - call $std/array/assertSortedDefault - local.get $32 - local.get $35 - i32.const 4 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 948 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $34 - call $std/array/assertSortedDefault - local.get $50 - call $~lib/rt/pure/__release - local.get $51 - call $~lib/rt/pure/__release - local.get $49 - call $~lib/rt/pure/__release - local.get $48 - call $~lib/rt/pure/__release - local.get $47 - call $~lib/rt/pure/__release - local.get $44 - call $~lib/rt/pure/__release - local.get $41 - call $~lib/rt/pure/__release - local.get $43 - call $~lib/rt/pure/__release - local.get $42 - call $~lib/rt/pure/__release - local.get $38 - call $~lib/rt/pure/__release - local.get $40 - call $~lib/rt/pure/__release - local.get $39 - call $~lib/rt/pure/__release - local.get $35 - call $~lib/rt/pure/__release - local.get $54 - call $~lib/rt/pure/__release - local.get $37 - call $~lib/rt/pure/__release - local.get $36 - call $~lib/rt/pure/__release - local.get $32 - call $~lib/rt/pure/__release - local.get $34 - call $~lib/rt/pure/__release - local.get $29 - call $~lib/rt/pure/__release - local.get $31 - call $~lib/rt/pure/__release - i32.const 64 - call $std/array/createRandomOrderedArray - local.set $31 - i32.const 257 - call $std/array/createRandomOrderedArray - local.set $29 - local.get $31 - i32.const 49 - call $std/array/assertSorted - local.get $31 - i32.const 50 - call $std/array/assertSorted - local.get $29 - i32.const 51 - call $std/array/assertSorted - local.get $29 - i32.const 52 - call $std/array/assertSorted - local.get $31 - call $~lib/rt/pure/__release - local.get $29 - call $~lib/rt/pure/__release - i32.const 2 - call $std/array/createReverseOrderedNestedArray - local.set $29 - local.get $29 - i32.const 53 - call $std/array/assertSorted<~lib/array/Array> - local.get $29 - call $~lib/rt/pure/__release - i32.const 512 - call $std/array/createReverseOrderedElementsArray - local.set $29 - local.get $29 - i32.const 54 - call $std/array/assertSorted> - local.get $29 - call $~lib/rt/pure/__release - i32.const 7 - i32.const 2 - i32.const 15 - i32.const 5072 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $31 - i32.const 7 - i32.const 2 - i32.const 15 - i32.const 5120 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $34 - local.get $31 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $std/array/assertSorted<~lib/string/String | null>@varargs - local.get $31 - local.get $34 - i32.const 0 - call $std/array/isArraysEqual<~lib/string/String | null> - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 985 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 400 - call $std/array/createRandomStringArray - local.set $29 - local.get $29 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $std/array/assertSorted<~lib/string/String>@varargs - local.get $31 - call $~lib/rt/pure/__release - local.get $34 - call $~lib/rt/pure/__release - local.get $29 - call $~lib/rt/pure/__release - i32.const 2 - i32.const 0 - i32.const 17 - i32.const 5200 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $34 - i32.const 5296 - call $~lib/array/Array#join - local.tee $29 - i32.const 5328 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 994 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 2 - i32.const 3 - i32.const 5376 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $32 - i32.const 5056 - call $~lib/array/Array#join - local.tee $31 - i32.const 7168 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 995 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 2 - i32.const 7 - i32.const 7200 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $37 - i32.const 7232 - call $~lib/array/Array#join - local.tee $36 - i32.const 7168 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 996 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 7264 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $35 - i32.const 7296 - call $~lib/array/Array#join - local.tee $54 - i32.const 7328 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 997 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 6 - i32.const 3 - i32.const 10 - i32.const 7392 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $40 - i32.const 7456 - call $~lib/array/Array#join - local.tee $39 - i32.const 8544 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 998 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 2 - i32.const 15 - i32.const 8672 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $42 - i32.const 5056 - call $~lib/array/Array<~lib/string/String | null>#join - local.tee $38 - i32.const 8640 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 999 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 2 - i32.const 11 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $43 - local.get $43 - i32.load offset=4 - local.set $41 - local.get $41 - i32.const 0 - i32.const 0 - call $std/array/Ref#constructor - i32.store - local.get $41 - i32.const 0 - call $~lib/rt/pure/__retain - i32.store offset=4 - local.get $41 - i32.const 0 - i32.const 0 - call $std/array/Ref#constructor - i32.store offset=8 - local.get $43 - local.set $41 - local.get $41 - i32.const 5296 - call $~lib/array/Array#join - local.tee $43 - i32.const 8752 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1001 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - i32.const 2 - i32.const 8 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $44 - local.get $44 - i32.load offset=4 - local.set $47 - local.get $47 - i32.const 0 - i32.const 0 - call $std/array/Ref#constructor - i32.store - local.get $47 - i32.const 0 - i32.const 0 - call $std/array/Ref#constructor - i32.store offset=4 - local.get $44 - local.set $47 - local.get $47 - i32.const 5296 - call $~lib/array/Array#join - local.tee $44 - i32.const 8832 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1004 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $34 - call $~lib/rt/pure/__release - local.get $29 - call $~lib/rt/pure/__release - local.get $32 - call $~lib/rt/pure/__release - local.get $31 - call $~lib/rt/pure/__release - local.get $37 - call $~lib/rt/pure/__release - local.get $36 - call $~lib/rt/pure/__release - local.get $35 - call $~lib/rt/pure/__release - local.get $54 - call $~lib/rt/pure/__release - local.get $40 - call $~lib/rt/pure/__release - local.get $39 - call $~lib/rt/pure/__release - local.get $42 - call $~lib/rt/pure/__release - local.get $38 - call $~lib/rt/pure/__release - local.get $41 - call $~lib/rt/pure/__release - local.get $43 - call $~lib/rt/pure/__release - local.get $47 - call $~lib/rt/pure/__release - local.get $44 - call $~lib/rt/pure/__release - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 8912 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $47 - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 8928 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $43 - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 8960 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $41 - i32.const 4 - i32.const 2 - i32.const 3 - i32.const 8992 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $38 - local.get $47 - call $~lib/array/Array#toString - local.tee $44 - i32.const 5056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1014 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $43 - call $~lib/array/Array#toString - local.tee $42 - i32.const 8640 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1015 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $41 - call $~lib/array/Array#toString - local.tee $39 - i32.const 9024 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1016 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $38 - call $~lib/array/Array#toString - local.tee $40 - i32.const 9056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1017 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 0 - i32.const 18 - i32.const 9088 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $35 - call $~lib/array/Array#toString - local.tee $54 - i32.const 9120 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1019 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 1 - i32.const 19 - i32.const 9152 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $37 - call $~lib/array/Array#toString - local.tee $36 - i32.const 9184 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1020 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 3 - i32.const 20 - i32.const 9232 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $32 - call $~lib/array/Array#toString - local.tee $31 - i32.const 9280 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1021 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 4 - i32.const 3 - i32.const 21 - i32.const 9344 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $34 - call $~lib/array/Array#toString - local.tee $29 - i32.const 9392 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1022 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 7 - i32.const 2 - i32.const 15 - i32.const 9504 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $49 - local.get $49 - call $~lib/array/Array<~lib/string/String | null>#toString - local.tee $48 - i32.const 9552 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1026 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 4 - i32.const 2 - i32.const 15 - i32.const 9664 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $50 - call $~lib/array/Array<~lib/string/String | null>#toString - local.tee $51 - i32.const 9696 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1027 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - i32.const 2 - i32.const 12 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $33 - local.get $33 - i32.load offset=4 - local.set $30 - local.get $30 - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 9728 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - i32.store - local.get $30 - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 9760 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - i32.store offset=4 - local.get $33 - local.set $56 - local.get $56 - call $~lib/array/Array<~lib/array/Array>#toString - local.tee $30 - i32.const 9792 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1030 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - i32.const 2 - i32.const 22 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $33 - local.get $33 - i32.load offset=4 - local.set $26 - local.get $26 - i32.const 2 - i32.const 0 - i32.const 6 - i32.const 9824 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - i32.store - local.get $26 - i32.const 2 - i32.const 0 - i32.const 6 - i32.const 9856 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - i32.store offset=4 - local.get $33 - local.set $57 - local.get $57 - call $~lib/array/Array<~lib/array/Array>#toString - local.tee $26 - i32.const 9792 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1033 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 2 - i32.const 24 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $33 - local.get $33 - i32.load offset=4 - local.set $28 - local.get $28 - i32.const 1 - i32.const 2 - i32.const 23 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $27 - local.get $27 - i32.load offset=4 - local.set $6 - local.get $6 - i32.const 1 - i32.const 2 - i32.const 7 - i32.const 9888 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - i32.store - local.get $27 - i32.store - local.get $33 - local.set $58 - local.get $58 - call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString - local.tee $28 - i32.const 8640 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1036 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $47 - call $~lib/rt/pure/__release - local.get $43 - call $~lib/rt/pure/__release - local.get $41 - call $~lib/rt/pure/__release - local.get $38 - call $~lib/rt/pure/__release - local.get $44 - call $~lib/rt/pure/__release - local.get $42 - call $~lib/rt/pure/__release - local.get $39 - call $~lib/rt/pure/__release - local.get $40 - call $~lib/rt/pure/__release - local.get $35 - call $~lib/rt/pure/__release - local.get $54 - call $~lib/rt/pure/__release - local.get $37 - call $~lib/rt/pure/__release - local.get $36 - call $~lib/rt/pure/__release - local.get $32 - call $~lib/rt/pure/__release - local.get $31 - call $~lib/rt/pure/__release - local.get $34 - call $~lib/rt/pure/__release - local.get $29 - call $~lib/rt/pure/__release - local.get $49 - call $~lib/rt/pure/__release - local.get $48 - call $~lib/rt/pure/__release - local.get $50 - call $~lib/rt/pure/__release - local.get $51 - call $~lib/rt/pure/__release - local.get $30 - call $~lib/rt/pure/__release - local.get $26 - call $~lib/rt/pure/__release - local.get $28 - call $~lib/rt/pure/__release - global.get $std/array/arr - call $~lib/rt/pure/__release - i32.const 4 - i32.const 2 - i32.const 12 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $28 - local.get $28 - i32.load offset=4 - local.set $26 - local.get $26 - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 9920 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - i32.store - local.get $26 - i32.const 3 - i32.const 2 - i32.const 3 - i32.const 9952 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - i32.store offset=4 - local.get $26 - i32.const 3 - i32.const 2 - i32.const 3 - i32.const 9984 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - i32.store offset=8 - local.get $26 - i32.const 3 - i32.const 2 - i32.const 3 - i32.const 10016 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - i32.store offset=12 - local.get $28 - local.set $59 - local.get $59 - call $~lib/array/Array<~lib/array/Array>#flat - local.set $60 - local.get $60 - call $~lib/array/Array#get:length - i32.const 10 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1047 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $26 - loop $for-loop|1 - local.get $26 - i32.const 10 - i32.lt_s - local.set $28 - local.get $28 - if - local.get $60 - local.get $26 - call $~lib/array/Array#__get - local.get $26 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1049 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $26 - i32.const 1 - i32.add - local.set $26 - br $for-loop|1 - end - end - i32.const 4 - i32.const 2 - i32.const 25 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $26 - local.get $26 - i32.load offset=4 - local.set $28 - local.get $28 - i32.const 1 - i32.const 2 - i32.const 15 - i32.const 10080 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - i32.store - local.get $28 - i32.const 3 - i32.const 2 - i32.const 15 - i32.const 10176 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - i32.store offset=4 - local.get $28 - i32.const 3 - i32.const 2 - i32.const 15 - i32.const 10304 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - i32.store offset=8 - local.get $28 - i32.const 1 - i32.const 2 - i32.const 15 - i32.const 10368 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - i32.store offset=12 - local.get $26 - local.set $61 - local.get $61 - call $~lib/array/Array<~lib/array/Array<~lib/string/String | null>>#flat - local.set $62 - i32.const 8 - i32.const 2 - i32.const 15 - i32.const 10400 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $63 - local.get $62 - call $~lib/array/Array<~lib/string/String | null>#get:length - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1055 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $26 - loop $for-loop|2 - local.get $26 - local.get $63 - call $~lib/array/Array<~lib/string/String | null>#get:length - i32.lt_s - local.set $28 - local.get $28 - if - local.get $62 - local.get $26 - call $~lib/array/Array<~lib/string/String | null>#__get - local.tee $30 - local.get $63 - local.get $26 - call $~lib/array/Array<~lib/string/String | null>#__get - local.tee $51 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1057 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $30 - call $~lib/rt/pure/__release - local.get $51 - call $~lib/rt/pure/__release - local.get $26 - i32.const 1 - i32.add - local.set $26 - br $for-loop|2 - end - end - i32.const 2 - i32.const 2 - i32.const 12 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $26 - local.get $26 - i32.load offset=4 - local.set $28 - local.get $28 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 10448 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - i32.store - local.get $28 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 10464 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - i32.store offset=4 - local.get $26 - local.set $28 - local.get $28 - call $~lib/array/Array<~lib/array/Array>#flat - local.tee $26 - call $~lib/array/Array#get:length - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 1061 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $28 - call $~lib/rt/pure/__release - local.get $26 - call $~lib/rt/pure/__release - local.get $45 - call $~lib/rt/pure/__release - local.get $46 - call $~lib/rt/pure/__release - local.get $52 - call $~lib/rt/pure/__release - local.get $53 - call $~lib/rt/pure/__release - local.get $56 - call $~lib/rt/pure/__release - local.get $57 - call $~lib/rt/pure/__release - local.get $58 - call $~lib/rt/pure/__release - local.get $59 - call $~lib/rt/pure/__release - local.get $60 - call $~lib/rt/pure/__release - local.get $61 - call $~lib/rt/pure/__release - local.get $62 - call $~lib/rt/pure/__release - local.get $63 - call $~lib/rt/pure/__release - ) - (func $~start - global.get $~started - if - return - else - i32.const 1 - global.set $~started - end - call $start:std/array - ) - (func $~lib/rt/pure/finalize (param $0 i32) - i32.const 0 - drop - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/pure/decrement (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 268435455 - i32.and - local.set $2 - i32.const 1 - drop - local.get $0 - call $~lib/rt/rtrace/ondecrement - i32.const 1 - drop - local.get $0 - i32.load - i32.const 1 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 240 - i32.const 122 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 16 - i32.add - i32.const 1 - call $~lib/rt/__visit_members - i32.const 1 - drop - i32.const 1 - drop - local.get $1 - i32.const -2147483648 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 240 - i32.const 126 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/finalize - else - i32.const 1 - drop - local.get $2 - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 240 - i32.const 136 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - drop - local.get $0 - local.get $1 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.const 1 - i32.sub - i32.or - i32.store offset=4 - end - ) - (func $~lib/rt/pure/__collect - i32.const 1 - drop - return - ) - (func $~lib/rt/pure/__visit (param $0 i32) (param $1 i32) - local.get $0 - global.get $~lib/heap/__heap_base - i32.lt_u - if - return - end - i32.const 1 - drop - i32.const 1 - drop - local.get $1 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 240 - i32.const 69 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (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/pure/__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/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (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/pure/__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/pure/__visit - ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (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/pure/__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/pure/__visit - ) - (func $~lib/array/Array>#__visit_impl (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/pure/__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/pure/__visit - ) - (func $~lib/array/Array<~lib/string/String | null>#__visit_impl (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/pure/__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/pure/__visit - ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (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/pure/__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/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $0 - i32.load - local.get $1 - call $~lib/rt/pure/__visit - ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (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/pure/__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/pure/__visit - ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (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/pure/__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/pure/__visit - ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl (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/pure/__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/pure/__visit - ) - (func $~lib/array/Array<~lib/array/Array<~lib/string/String | null>>#__visit_impl (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/pure/__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/pure/__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - (local $2 i32) - block $switch$1$default - block $switch$1$case$27 - block $switch$1$case$26 - block $switch$1$case$25 - block $switch$1$case$24 - block $switch$1$case$23 - block $switch$1$case$22 - block $switch$1$case$21 - block $switch$1$case$20 - block $switch$1$case$19 - block $switch$1$case$18 - block $switch$1$case$17 - block $switch$1$case$16 - block $switch$1$case$14 - block $switch$1$case$13 - block $switch$1$case$12 - block $switch$1$case$11 - block $switch$1$case$10 - block $switch$1$case$9 - block $switch$1$case$8 - block $switch$1$case$5 - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$2 $switch$1$case$4 $switch$1$case$8 $switch$1$case$9 $switch$1$case$10 $switch$1$case$11 $switch$1$case$12 $switch$1$case$13 $switch$1$case$14 $switch$1$case$2 $switch$1$case$16 $switch$1$case$17 $switch$1$case$18 $switch$1$case$19 $switch$1$case$20 $switch$1$case$21 $switch$1$case$22 $switch$1$case$23 $switch$1$case$24 $switch$1$case$25 $switch$1$case$26 $switch$1$case$27 $switch$1$default - end - return - end - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/pure/__visit - end - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array>#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array>#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String | null>#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array>#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array>#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl - return - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array<~lib/string/String | null>>#__visit_impl - return - end - unreachable - ) -) From 1ed3d01021f98ca309abdf6de2735b4c304832fe Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Wed, 24 Jun 2020 23:45:31 +0300 Subject: [PATCH 2/4] don't use checktype --- std/assembly/array.ts | 3 +- tests/compiler/std/array.optimized.wat | 2657 +++++++++++++++++------- tests/compiler/std/array.ts | 6 +- 3 files changed, 1863 insertions(+), 803 deletions(-) diff --git a/std/assembly/array.ts b/std/assembly/array.ts index 693f43c1b2..83a26bd24a 100644 --- a/std/assembly/array.ts +++ b/std/assembly/array.ts @@ -367,7 +367,8 @@ export class Array { base + sizeof(), lastIndex << alignof() ); - store(base + (lastIndex << alignof()), changetype(0)); + // @ts-ignore + store(base + (lastIndex << alignof()), 0); this.length_ = lastIndex; return element; // no need to retain -> is moved } diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 83198f754f..c6f5228172 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -11,7 +11,6 @@ (type $none_=>_none (func)) (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) - (type $i32_i32_i32_=>_f32 (func (param i32 i32 i32) (result f32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) (type $i64_=>_none (func (param i64))) @@ -21,6 +20,7 @@ (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) (type $i64_=>_i64 (func (param i64) (result i64))) (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) + (type $i32_i32_i32_=>_f32 (func (param i32 i32 i32) (result f32))) (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) @@ -258,37 +258,31 @@ (export "_start" (func $~start)) (export "memory" (memory $0)) (export "ExtendedArray" (global $std/array/ExtendedArray)) - (export "ExtendedArray#constructor" (func $~lib/array/Array#constructor@varargs)) + (export "ExtendedArray#constructor" (func $~lib/array/Array#constructor@varargs)) (export "ExtendedArray#get:length" (func $~lib/array/Array#get:length)) - (export "ExtendedArray#set:length" (func $~lib/array/Array#set:length)) - (export "ExtendedArray#every" (func $~lib/array/Array#every)) - (export "ExtendedArray#findIndex" (func $~lib/array/Array#findIndex)) - (export "ExtendedArray#fill" (func $~lib/array/Array#fill@varargs)) - (export "ExtendedArray#includes" (func $~lib/array/Array#includes@varargs)) - (export "ExtendedArray#indexOf" (func $~lib/array/Array#indexOf@varargs)) - (export "ExtendedArray#lastIndexOf" (func $~lib/array/Array#lastIndexOf@varargs)) - (export "ExtendedArray#push" (func $~lib/array/Array#push)) - (export "ExtendedArray#concat" (func $~lib/array/Array#concat)) - (export "ExtendedArray#copyWithin" (func $~lib/array/Array#copyWithin@varargs)) - (export "ExtendedArray#pop" (func $~lib/array/Array#pop)) - (export "ExtendedArray#forEach" (func $~lib/array/Array#forEach)) - (export "ExtendedArray#map" (func $~lib/array/Array#map)) - (export "ExtendedArray#map" (func $~lib/array/Array#map)) - (export "ExtendedArray#filter" (func $~lib/array/Array#filter)) - (export "ExtendedArray#reduce" (func $~lib/array/Array#reduce)) - (export "ExtendedArray#reduce" (func $~lib/array/Array#reduce)) - (export "ExtendedArray#reduceRight" (func $~lib/array/Array#reduceRight)) - (export "ExtendedArray#reduceRight" (func $~lib/array/Array#reduceRight)) - (export "ExtendedArray#shift" (func $~lib/array/Array#shift)) - (export "ExtendedArray#some" (func $~lib/array/Array#some)) - (export "ExtendedArray#unshift" (func $~lib/array/Array#unshift)) - (export "ExtendedArray#slice" (func $~lib/array/Array#slice@varargs)) - (export "ExtendedArray#splice" (func $~lib/array/Array#splice@varargs)) - (export "ExtendedArray#reverse" (func $~lib/array/Array#reverse)) - (export "ExtendedArray#sort" (func $~lib/array/Array#sort@varargs)) - (export "ExtendedArray#join" (func $~lib/array/Array#join@varargs)) - (export "ExtendedArray#flat" (func $~lib/array/Array#flat)) - (export "ExtendedArray#toString" (func $~lib/array/Array#toString)) + (export "ExtendedArray#set:length" (func $~lib/array/Array#set:length)) + (export "ExtendedArray#every" (func $~lib/array/Array#every)) + (export "ExtendedArray#findIndex" (func $~lib/array/Array#findIndex)) + (export "ExtendedArray#fill" (func $~lib/array/Array#fill@varargs)) + (export "ExtendedArray#includes" (func $~lib/array/Array#includes@varargs)) + (export "ExtendedArray#indexOf" (func $~lib/array/Array#indexOf@varargs)) + (export "ExtendedArray#lastIndexOf" (func $~lib/array/Array#lastIndexOf@varargs)) + (export "ExtendedArray#push" (func $~lib/array/Array#push)) + (export "ExtendedArray#concat" (func $~lib/array/Array#concat)) + (export "ExtendedArray#copyWithin" (func $~lib/array/Array#copyWithin@varargs)) + (export "ExtendedArray#pop" (func $~lib/array/Array#pop)) + (export "ExtendedArray#forEach" (func $~lib/array/Array#forEach)) + (export "ExtendedArray#filter" (func $~lib/array/Array#filter)) + (export "ExtendedArray#shift" (func $~lib/array/Array#shift)) + (export "ExtendedArray#some" (func $~lib/array/Array#some)) + (export "ExtendedArray#unshift" (func $~lib/array/Array#unshift)) + (export "ExtendedArray#slice" (func $~lib/array/Array#slice@varargs)) + (export "ExtendedArray#splice" (func $~lib/array/Array#splice@varargs)) + (export "ExtendedArray#reverse" (func $~lib/array/Array#reverse)) + (export "ExtendedArray#sort" (func $~lib/array/Array#sort@varargs)) + (export "ExtendedArray#join" (func $~lib/array/Array#join@varargs)) + (export "ExtendedArray#flat" (func $~lib/array/Array#flat)) + (export "ExtendedArray#toString" (func $~lib/array/Array#toString)) (export "__setArgumentsLength" (func $~setArgumentsLength)) (func $~lib/rt/pure/__release (param $0 i32) local.get $0 @@ -1543,33 +1537,29 @@ end local.get $0 ) - (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $0 - i32.eqz - if - i32.const 16 - i32.const 3 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 + i32.const 16 + i32.const 3 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.tee $3 i32.const 0 i32.store - local.get $0 + local.get $3 i32.const 0 i32.store offset=4 - local.get $0 + local.get $3 i32.const 0 i32.store offset=8 - local.get $0 + local.get $3 i32.const 0 i32.store offset=12 - local.get $1 + local.get $0 i32.const 268435452 i32.gt_u if @@ -1580,43 +1570,43 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 2 i32.shl - local.tee $5 + local.tee $4 i32.const 0 call $~lib/rt/tlsf/__alloc - local.tee $3 + local.tee $1 i32.const 0 - local.get $5 + local.get $4 call $~lib/memory/memory.fill - local.get $3 + local.get $1 local.set $2 + local.get $1 local.get $3 - local.get $0 i32.load - local.tee $4 + local.tee $5 i32.ne if local.get $2 call $~lib/rt/pure/__retain local.set $2 - local.get $4 + local.get $5 call $~lib/rt/pure/__release end - local.get $0 + local.get $3 local.get $2 i32.store - local.get $0 local.get $3 + local.get $1 i32.store offset=4 - local.get $0 - local.get $5 + local.get $3 + local.get $4 i32.store offset=8 + local.get $3 local.get $0 - local.get $1 i32.store offset=12 - local.get $0 + local.get $3 ) (func $~lib/array/Array.isArray<~lib/array/Array | null> (param $0 i32) (result i32) local.get $0 @@ -2329,20 +2319,21 @@ end local.get $3 ) - (func $~lib/array/ensureSize (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/array/ensureSize (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $1 local.get $0 i32.load offset=8 - local.tee $2 - i32.const 2 + local.tee $3 + local.get $2 i32.shr_u i32.gt_u if local.get $1 - i32.const 268435452 + i32.const 1073741808 + local.get $2 + i32.shr_u i32.gt_u if i32.const 1040 @@ -2354,27 +2345,27 @@ end local.get $0 i32.load - local.set $3 - local.get $2 + local.set $4 call $~lib/rt/tlsf/maybeInitialize - local.get $3 + local.get $4 call $~lib/rt/tlsf/checkUsedBlock local.get $1 - i32.const 2 + local.get $2 i32.shl - local.tee $4 + local.tee $2 call $~lib/rt/tlsf/reallocateBlock i32.const 16 i32.add local.tee $1 + local.get $3 i32.add i32.const 0 - local.get $4 local.get $2 + local.get $3 i32.sub call $~lib/memory/memory.fill local.get $1 - local.get $3 + local.get $4 i32.ne if local.get $0 @@ -2385,33 +2376,33 @@ i32.store offset=4 end local.get $0 - local.get $4 + local.get $2 i32.store offset=8 end ) - (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const 1 i32.add - local.tee $2 + local.tee $3 + i32.const 2 call $~lib/array/ensureSize local.get $0 i32.load offset=4 - local.get $3 + local.get $2 i32.const 2 i32.shl i32.add local.get $1 i32.store local.get $0 - local.get $2 + local.get $3 i32.store offset=12 - local.get $2 ) (func $~lib/array/Array#pop (param $0 i32) (result i32) (local $1 i32) @@ -2605,7 +2596,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -2614,6 +2605,7 @@ i32.const 1 i32.add local.tee $2 + i32.const 2 call $~lib/array/ensureSize local.get $0 i32.load offset=4 @@ -2633,100 +2625,6 @@ local.get $0 local.get $2 i32.store offset=12 - 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.tee $1 - i32.const 1 - i32.lt_s - if - i32.const 1984 - i32.const 1088 - i32.const 361 - i32.const 21 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.tee $2 - i32.load - local.get $2 - local.get $2 - i32.const 4 - i32.add - local.get $1 - i32.const 1 - i32.sub - local.tee $1 - i32.const 2 - i32.shl - local.tee $4 - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - i32.const 0 - i32.store - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/array/Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.load offset=12 - local.tee $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 $1 - loop $while-continue|0 - local.get $2 - local.get $1 - i32.lt_u - if - local.get $2 - i32.load - local.set $3 - local.get $2 - local.get $1 - i32.load - i32.store - local.get $1 - local.get $3 - i32.store - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $1 - i32.const 4 - i32.sub - local.set $1 - br $while-continue|0 - end - end - end - local.get $0 - call $~lib/rt/pure/__retain ) (func $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -3133,6 +3031,7 @@ i32.const 1 i32.add local.tee $3 + i32.const 2 call $~lib/array/ensureSize local.get $0 local.get $3 @@ -3212,7 +3111,6 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push - drop local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -3293,7 +3191,6 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push - drop local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -3378,7 +3275,6 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push - drop local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -3457,7 +3353,6 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push - drop local.get $0 global.get $std/array/i i32.add @@ -3513,7 +3408,6 @@ i32.const 100 i32.add call $~lib/array/Array#push - drop local.get $3 i32.const 1 i32.add @@ -3550,7 +3444,6 @@ i32.const 200 i32.add call $~lib/array/Array#push - drop local.get $3 i32.const 1 i32.add @@ -3582,65 +3475,6 @@ local.get $0 f32.convert_i32_s ) - (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.get $0 - i32.load offset=12 - local.tee $4 - i32.const 2 - i32.const 9 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - i32.load offset=4 - local.set $6 - loop $for-loop|0 - local.get $2 - local.get $4 - local.get $0 - i32.load offset=12 - local.tee $3 - local.get $4 - local.get $3 - i32.lt_s - select - i32.lt_s - if - local.get $2 - i32.const 2 - i32.shl - local.tee $3 - local.get $0 - i32.load offset=4 - i32.add - i32.load - local.set $7 - i32.const 3 - global.set $~argumentsLength - local.get $3 - local.get $6 - i32.add - local.get $7 - local.get $2 - local.get $0 - local.get $1 - call_indirect (type $i32_i32_i32_=>_f32) - f32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $5 - ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) local.get $1 local.get $0 @@ -3668,7 +3502,6 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push - drop local.get $0 global.get $std/array/i i32.add @@ -3811,7 +3644,6 @@ local.get $4 local.get $3 call $~lib/array/Array#push - drop end local.get $2 i32.const 1 @@ -3828,7 +3660,6 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push - drop local.get $0 global.get $std/array/i i32.add @@ -3939,7 +3770,6 @@ local.tee $2 i32.const 1 call $~lib/array/Array#push - drop local.get $2 call $~lib/rt/pure/__release local.get $0 @@ -5412,22 +5242,6 @@ local.get $1 i32.sub ) - (func $~lib/array/Array#sort@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 46 - local.set $1 - end - local.get $0 - local.get $1 - call $~lib/array/Array#sort - ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 @@ -5440,7 +5254,6 @@ (func $std/array/createReverseOrderedArray (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - i32.const 0 local.get $0 call $~lib/array/Array#constructor local.set $2 @@ -5510,7 +5323,6 @@ (func $std/array/createRandomOrderedArray (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - i32.const 0 local.get $0 call $~lib/array/Array#constructor local.set $2 @@ -5646,6 +5458,7 @@ i32.const 1 i32.add local.tee $3 + i32.const 2 call $~lib/array/ensureSize local.get $0 local.get $3 @@ -5737,7 +5550,6 @@ i32.const 2 i32.lt_s if - i32.const 0 i32.const 1 call $~lib/array/Array#constructor local.tee $0 @@ -8734,11 +8546,6 @@ i32.const 6304 call $~lib/rt/pure/__release ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) - local.get $0 - i32.const 6304 - call $~lib/array/Array#join - ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 @@ -9919,16 +9726,24 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 local.get $0 i32.load offset=4 local.get $0 i32.load offset=12 - i32.const 6304 + local.get $1 call $~lib/util/string/joinIntegerArray - i32.const 6304 + local.get $1 call $~lib/rt/pure/__release ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 6304 + call $~lib/array/Array#join + ) (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -9967,7 +9782,8 @@ local.get $4 if (result i32) local.get $4 - call $~lib/array/Array#toString + i32.const 6304 + call $~lib/array/Array#join else i32.const 6064 end @@ -10006,11 +9822,13 @@ end local.get $3 if + local.get $3 + i32.const 6304 + call $~lib/array/Array#join + local.tee $2 local.get $1 local.get $1 - local.get $3 - call $~lib/array/Array#toString - local.tee $7 + local.get $2 call $~lib/string/String.__concat local.tee $9 local.tee $2 @@ -10022,7 +9840,6 @@ local.get $1 call $~lib/rt/pure/__release end - local.get $7 call $~lib/rt/pure/__release local.get $9 call $~lib/rt/pure/__release @@ -10074,13 +9891,15 @@ end local.get $2 if - local.get $1 - local.get $1 local.get $2 - call $~lib/array/Array#toString + i32.const 6304 + call $~lib/array/Array#join local.tee $0 + local.get $1 + local.get $1 + local.get $0 call $~lib/string/String.__concat - local.tee $4 + local.tee $0 local.tee $3 i32.ne if @@ -10090,9 +9909,8 @@ local.get $1 call $~lib/rt/pure/__release end - local.get $0 call $~lib/rt/pure/__release - local.get $4 + local.get $0 call $~lib/rt/pure/__release local.get $3 local.set $1 @@ -10756,7 +10574,6 @@ (local $60 i32) (local $61 i32) i32.const 0 - i32.const 0 call $~lib/array/Array#constructor global.set $std/array/arr i32.const 0 @@ -10804,13 +10621,13 @@ local.tee $0 local.get $2 i32.load - local.tee $5 + local.tee $4 i32.ne if local.get $0 call $~lib/rt/pure/__retain local.set $0 - local.get $5 + local.get $4 call $~lib/rt/pure/__release end local.get $2 @@ -10927,7 +10744,7 @@ i32.const 1632 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $4 call $std/array/isArraysEqual i32.eqz if @@ -10951,7 +10768,7 @@ i32.const 1664 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $10 + local.tee $9 call $std/array/isArraysEqual i32.eqz if @@ -10970,9 +10787,9 @@ call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $5 + local.get $4 call $~lib/rt/pure/__release - local.get $10 + local.get $9 call $~lib/rt/pure/__release i32.const 5 i32.const 2 @@ -11068,7 +10885,7 @@ i32.const 1888 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11093,7 +10910,7 @@ i32.const 1936 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $10 + local.tee $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11113,9 +10930,9 @@ call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $5 + local.get $4 call $~lib/rt/pure/__release - local.get $10 + local.get $9 call $~lib/rt/pure/__release global.get $std/array/arr i32.load offset=12 @@ -11140,7 +10957,6 @@ global.get $std/array/arr i32.const 42 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 0 call $~lib/array/Array#__get @@ -11215,7 +11031,6 @@ global.get $std/array/arr i32.const 43 call $~lib/array/Array#push - drop global.get $std/array/arr i32.load offset=12 i32.const 1 @@ -11256,7 +11071,6 @@ global.get $std/array/arr i32.const 44 call $~lib/array/Array#push - drop global.get $std/array/arr i32.load offset=12 i32.const 2 @@ -11310,7 +11124,6 @@ global.get $std/array/arr i32.const 45 call $~lib/array/Array#push - drop global.get $std/array/arr i32.load offset=12 i32.const 3 @@ -11419,6 +11232,7 @@ else local.get $0 i32.const 0 + i32.const 2 call $~lib/array/ensureSize end local.get $0 @@ -11437,7 +11251,6 @@ local.get $0 call $~lib/rt/pure/__release i32.const 0 - i32.const 0 call $~lib/array/Array#constructor local.set $1 global.get $std/array/arr @@ -11487,7 +11300,7 @@ i32.const 2032 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $4 call $~lib/array/Array#concat call $~lib/rt/pure/__release global.get $std/array/arr @@ -11544,11 +11357,9 @@ local.get $1 i32.const 46 call $~lib/array/Array#push - drop local.get $1 i32.const 47 call $~lib/array/Array#push - drop global.get $std/array/arr local.get $1 call $~lib/array/Array#concat @@ -11719,7 +11530,7 @@ call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $5 + local.get $4 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release @@ -11767,14 +11578,14 @@ i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $5 + local.tee $4 i32.const 5 i32.const 2 i32.const 3 i32.const 2208 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $10 + local.tee $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11799,14 +11610,14 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $20 + local.tee $15 i32.const 5 i32.const 2 i32.const 3 i32.const 2304 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $23 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11831,14 +11642,14 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $8 + local.tee $6 i32.const 5 i32.const 2 i32.const 3 i32.const 2400 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11870,7 +11681,7 @@ i32.const 2496 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $11 + local.tee $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11895,14 +11706,14 @@ i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $13 + local.tee $12 i32.const 5 i32.const 2 i32.const 3 i32.const 2592 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $14 + local.tee $13 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11991,14 +11802,14 @@ i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.tee $15 + local.tee $14 i32.const 5 i32.const 2 i32.const 3 i32.const 2880 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $21 + local.tee $20 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12031,7 +11842,7 @@ i32.const 2976 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $22 + local.tee $21 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12057,7 +11868,7 @@ i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.tee $23 + local.tee $22 i32.const 5 i32.const 2 i32.const 3 @@ -12115,25 +11926,25 @@ call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $5 + local.get $4 call $~lib/rt/pure/__release - local.get $10 + local.get $9 call $~lib/rt/pure/__release - local.get $20 + local.get $15 + call $~lib/rt/pure/__release + local.get $23 call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $11 + local.get $10 call $~lib/rt/pure/__release - local.get $13 + local.get $12 call $~lib/rt/pure/__release - local.get $14 + local.get $13 call $~lib/rt/pure/__release local.get $28 call $~lib/rt/pure/__release @@ -12143,15 +11954,15 @@ call $~lib/rt/pure/__release local.get $18 call $~lib/rt/pure/__release - local.get $15 + local.get $14 call $~lib/rt/pure/__release - local.get $21 + local.get $20 call $~lib/rt/pure/__release local.get $19 call $~lib/rt/pure/__release - local.get $22 + local.get $21 call $~lib/rt/pure/__release - local.get $23 + local.get $22 call $~lib/rt/pure/__release local.get $24 call $~lib/rt/pure/__release @@ -12162,7 +11973,6 @@ global.get $std/array/arr i32.const 42 call $~lib/array/Array#unshift - drop global.get $std/array/arr i32.load offset=12 i32.const 4 @@ -12242,7 +12052,6 @@ global.get $std/array/arr i32.const 41 call $~lib/array/Array#unshift - drop global.get $std/array/arr i32.load offset=12 i32.const 5 @@ -12333,7 +12142,43 @@ unreachable end global.get $std/array/arr - call $~lib/array/Array#shift + local.tee $1 + i32.load offset=12 + local.tee $2 + i32.const 1 + i32.lt_s + if + i32.const 1984 + i32.const 1088 + i32.const 361 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.tee $0 + i32.load + local.get $0 + local.get $0 + i32.const 4 + i32.add + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $4 + call $~lib/memory/memory.copy + local.get $0 + local.get $4 + i32.add + i32.const 0 + i32.store + local.get $1 + local.get $2 + i32.store offset=12 global.set $std/array/i global.get $std/array/i i32.const 41 @@ -12500,8 +12345,49 @@ unreachable end global.get $std/array/arr - call $~lib/array/Array#reverse - call $~lib/rt/pure/__release + local.tee $1 + i32.load offset=12 + local.tee $2 + if + local.get $1 + i32.load offset=4 + local.set $0 + local.get $1 + i32.load offset=4 + local.get $2 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $0 + local.get $2 + i32.lt_u + if + local.get $0 + i32.load + local.set $1 + local.get $0 + local.get $2 + i32.load + i32.store + local.get $2 + local.get $1 + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $2 + i32.const 4 + i32.sub + local.set $2 + br $while-continue|0 + end + end + end global.get $std/array/arr i32.load offset=12 i32.const 3 @@ -12568,11 +12454,9 @@ global.get $std/array/arr i32.const 43 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 44 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 44 i32.const 0 @@ -12738,7 +12622,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $1 - local.set $5 + local.set $4 i32.const 0 local.set $0 block $__inlined_func$~lib/array/Array#indexOf @@ -12757,10 +12641,10 @@ local.set $0 br $__inlined_func$~lib/array/Array#indexOf end - local.get $5 + local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|0 + loop $while-continue|019 local.get $0 local.get $2 i32.lt_s @@ -12778,7 +12662,7 @@ i32.const 1 i32.add local.set $0 - br $while-continue|0 + br $while-continue|019 end end i32.const -1 @@ -12802,7 +12686,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $2 - local.set $10 + local.set $9 i32.const 0 local.set $0 block $__inlined_func$~lib/array/Array#indexOf @@ -12821,15 +12705,15 @@ local.set $0 br $__inlined_func$~lib/array/Array#indexOf end - local.get $10 + local.get $9 i32.load offset=4 - local.set $5 - loop $while-continue|019 + local.set $4 + loop $while-continue|020 local.get $0 local.get $3 i32.lt_s if - local.get $5 + local.get $4 local.get $0 i32.const 3 i32.shl @@ -12842,7 +12726,7 @@ i32.const 1 i32.add local.set $0 - br $while-continue|019 + br $while-continue|020 end end i32.const -1 @@ -13009,28 +12893,28 @@ i32.const 3280 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $2 - i32.load offset=12 local.tee $3 + i32.load offset=12 + local.tee $2 if (result i32) i32.const 0 - local.get $3 + local.get $2 i32.ge_s else i32.const 1 end br_if $__inlined_func$~lib/array/Array#includes drop - local.get $2 + local.get $3 i32.load offset=4 - local.set $10 - loop $while-continue|020 + local.set $9 + loop $while-continue|021 local.get $0 - local.get $3 + local.get $2 i32.lt_s if i32.const 1 - local.get $10 + local.get $9 local.get $0 i32.const 2 i32.shl @@ -13052,7 +12936,7 @@ i32.const 1 i32.add local.set $0 - br $while-continue|020 + br $while-continue|021 end end i32.const 0 @@ -13068,7 +12952,7 @@ end block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $0 + local.set $2 i32.const 0 i32.const 1 i32.const 3 @@ -13076,29 +12960,29 @@ i32.const 3312 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $1 i32.load offset=12 - local.tee $5 + local.tee $4 if (result i32) i32.const 0 - local.get $5 + local.get $4 i32.ge_s else i32.const 1 end br_if $__inlined_func$~lib/array/Array#includes drop - local.get $3 + local.get $1 i32.load offset=4 - local.set $20 - loop $while-continue|021 - local.get $0 - local.get $5 + local.set $15 + loop $while-continue|022 + local.get $2 + local.get $4 i32.lt_s if i32.const 1 - local.get $20 - local.get $0 + local.get $15 + local.get $2 i32.const 3 i32.shl i32.add @@ -13115,11 +12999,11 @@ end 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|021 + local.set $2 + br $while-continue|022 end end i32.const 0 @@ -13188,10 +13072,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 - call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 5 i32.const 2 i32.const 3 @@ -13209,7 +13093,7 @@ i32.const 3392 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13228,7 +13112,7 @@ i32.const 3440 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $6 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13253,7 +13137,7 @@ i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.tee $9 + local.tee $8 i32.const 0 i32.const 2 i32.const 3 @@ -13279,7 +13163,7 @@ i32.const 3520 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $11 + local.tee $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13304,14 +13188,14 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#splice - local.tee $13 + local.tee $12 i32.const 3 i32.const 2 i32.const 3 i32.const 3616 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $14 + local.tee $13 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13381,7 +13265,7 @@ i32.const 3760 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $15 + local.tee $14 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13406,7 +13290,7 @@ i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.tee $21 + local.tee $20 i32.const 1 i32.const 2 i32.const 3 @@ -13432,7 +13316,7 @@ i32.const 3872 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $22 + local.tee $21 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13456,7 +13340,7 @@ i32.const -1 i32.const 2147483647 call $~lib/array/Array#splice - local.tee $23 + local.tee $22 i32.const 1 i32.const 2 i32.const 3 @@ -13905,7 +13789,7 @@ local.tee $1 i32.const 1 call $~lib/array/Array#splice - local.tee $10 + local.tee $15 i32.load offset=12 if i32.const 0 @@ -13931,7 +13815,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $9 i32.load offset=4 local.tee $0 i32.const 1 @@ -13955,13 +13839,13 @@ i32.store offset=16 local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $9 i32.const 2 call $~lib/array/Array#splice - local.set $20 - local.get $10 + local.set $23 + local.get $15 call $~lib/rt/pure/__release - local.get $20 + local.get $23 i32.load offset=12 i32.const 2 i32.ne @@ -13973,7 +13857,7 @@ call $~lib/builtins/abort unreachable end - local.get $20 + local.get $23 i32.const 0 call $~lib/array/Array#__get local.tee $55 @@ -13988,7 +13872,7 @@ call $~lib/builtins/abort unreachable end - local.get $20 + local.get $23 i32.const 1 call $~lib/array/Array#__get local.tee $56 @@ -14003,7 +13887,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $9 i32.load offset=12 i32.const 3 i32.ne @@ -14015,7 +13899,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $9 i32.const 0 call $~lib/array/Array#__get local.tee $57 @@ -14030,7 +13914,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $9 i32.const 1 call $~lib/array/Array#__get local.tee $58 @@ -14045,7 +13929,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $9 i32.const 2 call $~lib/array/Array#__get local.tee $59 @@ -14066,7 +13950,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $10 + local.tee $15 i32.load offset=4 local.tee $0 i32.const 1 @@ -14079,7 +13963,7 @@ i32.const 2 call $std/array/Ref#constructor i32.store offset=8 - local.get $10 + local.get $15 call $~lib/array/Array#splice local.tee $28 i32.load offset=12 @@ -14118,7 +14002,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $15 i32.load offset=12 i32.const 2 i32.ne @@ -14130,7 +14014,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $15 i32.const 0 call $~lib/array/Array#__get local.tee $60 @@ -14142,7 +14026,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $15 i32.const 1 call $~lib/array/Array#__get local.tee $1 @@ -14171,19 +14055,19 @@ call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $11 + local.get $10 call $~lib/rt/pure/__release - local.get $13 + local.get $12 call $~lib/rt/pure/__release - local.get $14 + local.get $13 call $~lib/rt/pure/__release local.get $16 call $~lib/rt/pure/__release @@ -14191,15 +14075,15 @@ call $~lib/rt/pure/__release local.get $18 call $~lib/rt/pure/__release - local.get $15 + local.get $14 call $~lib/rt/pure/__release - local.get $21 + local.get $20 call $~lib/rt/pure/__release local.get $19 call $~lib/rt/pure/__release - local.get $22 + local.get $21 call $~lib/rt/pure/__release - local.get $23 + local.get $22 call $~lib/rt/pure/__release local.get $24 call $~lib/rt/pure/__release @@ -14412,11 +14296,9 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 7 call $~lib/array/Array#every @@ -14517,11 +14399,9 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 12 call $~lib/array/Array#some @@ -14620,11 +14500,9 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push - drop i32.const 0 global.set $std/array/i global.get $std/array/arr @@ -14728,11 +14606,9 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 21 call $~lib/array/Array#forEach @@ -14749,40 +14625,83 @@ unreachable end loop $for-loop|0 - local.get $4 + local.get $5 i32.const 100 i32.lt_s if global.get $std/array/arr call $~lib/array/Array#pop drop - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|0 end end global.get $std/array/arr i32.const 0 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 1 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 2 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push - drop + i32.const 0 + local.set $0 global.get $std/array/arr - i32.const 22 - call $~lib/array/Array#map - local.tee $0 + local.tee $2 + i32.load offset=12 + local.tee $3 + i32.const 2 + i32.const 9 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=4 + local.set $4 + loop $for-loop|040 + local.get $0 + local.get $3 + local.get $2 + i32.load offset=12 + local.tee $5 + local.get $3 + local.get $5 + i32.lt_s + select + i32.lt_s + if + local.get $0 + i32.const 2 + i32.shl + local.tee $5 + local.get $2 + i32.load offset=4 + i32.add + i32.load + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.add + local.get $6 + f32.convert_i32_s + f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|040 + end + end + local.get $1 i32.load offset=12 i32.const 4 i32.ne @@ -14794,7 +14713,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get global.get $std/array/arr @@ -14900,12 +14819,10 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push - drop - local.get $0 + local.get $1 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 26 @@ -15012,11 +14929,9 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push - drop local.get $0 call $~lib/rt/pure/__release global.get $std/array/arr @@ -15166,11 +15081,9 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 37 i32.const 0 @@ -15316,19 +15229,15 @@ global.get $std/array/arr i32.const 0 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 1 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 2 call $~lib/array/Array#push - drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push - drop call $~lib/bindings/Math/random i64.reinterpret_f64 call $~lib/math/NativeMath.seedRandom @@ -15344,7 +15253,7 @@ block $__inlined_func$~lib/array/Array#sort (result i32) local.get $0 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const 1 i32.le_s if @@ -15355,7 +15264,7 @@ local.get $0 i32.load offset=4 local.set $1 - local.get $4 + local.get $2 i32.const 2 i32.eq if @@ -15384,16 +15293,16 @@ call $~lib/rt/pure/__retain br $__inlined_func$~lib/array/Array#sort end - local.get $4 + local.get $2 i32.const 256 i32.lt_s if local.get $1 - local.get $4 + local.get $2 call $~lib/util/sort/insertionSort else local.get $1 - local.get $4 + local.get $2 call $~lib/util/sort/weakHeapSort end local.get $0 @@ -15430,7 +15339,7 @@ block $__inlined_func$~lib/array/Array#sort (result i32) local.get $1 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 1 i32.le_s if @@ -15440,15 +15349,15 @@ end local.get $1 i32.load offset=4 - local.set $4 - local.get $2 + local.set $2 + local.get $3 i32.const 2 i32.eq if - local.get $4 + local.get $2 f64.load offset=8 local.set $27 - local.get $4 + local.get $2 f64.load local.set $35 i32.const 2 @@ -15459,10 +15368,10 @@ i32.const 0 i32.lt_s if - local.get $4 + local.get $2 local.get $35 f64.store offset=8 - local.get $4 + local.get $2 local.get $27 f64.store end @@ -15470,16 +15379,16 @@ call $~lib/rt/pure/__retain br $__inlined_func$~lib/array/Array#sort end - local.get $2 + local.get $3 i32.const 256 i32.lt_s if - local.get $4 local.get $2 + local.get $3 call $~lib/util/sort/insertionSort else - local.get $4 local.get $2 + local.get $3 call $~lib/util/sort/weakHeapSort end local.get $1 @@ -15493,7 +15402,7 @@ i32.const 5456 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $15 + local.tee $14 call $std/array/isArraysEqual i32.eqz if @@ -15510,21 +15419,21 @@ i32.const 5536 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $2 + local.set $3 i32.const 0 global.set $~argumentsLength - local.get $2 - i32.const 0 - call $~lib/array/Array#sort@varargs + local.get $3 + i32.const 46 + call $~lib/array/Array#sort call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 5 i32.const 2 i32.const 3 i32.const 5584 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $21 + local.tee $20 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15542,14 +15451,14 @@ i32.const 5632 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $3 + local.set $4 i32.const 0 global.set $~argumentsLength - local.get $3 + local.get $4 i32.const 47 call $~lib/array/Array#sort call $~lib/rt/pure/__release - local.get $3 + local.get $4 i32.const 5 i32.const 2 i32.const 7 @@ -15581,55 +15490,55 @@ i32.const 5744 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $6 + local.set $5 i32.const 2 i32.const 2 i32.const 3 i32.const 5776 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $8 + local.set $6 i32.const 4 i32.const 2 i32.const 3 i32.const 5808 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $9 + local.set $8 i32.const 4 i32.const 2 i32.const 3 i32.const 5840 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $4 + local.set $2 i32.const 64 call $std/array/createReverseOrderedArray local.set $7 i32.const 128 call $std/array/createReverseOrderedArray - local.set $11 + local.set $10 i32.const 1024 call $std/array/createReverseOrderedArray - local.set $13 + local.set $12 i32.const 10000 call $std/array/createReverseOrderedArray - local.set $14 + local.set $13 i32.const 512 call $std/array/createRandomOrderedArray local.set $17 local.get $16 call $std/array/assertSortedDefault - local.get $6 + local.get $5 call $std/array/assertSortedDefault - local.get $6 + local.get $5 i32.const 1 i32.const 2 i32.const 3 i32.const 5872 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $22 + local.tee $21 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15641,16 +15550,16 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $6 call $std/array/assertSortedDefault - local.get $8 + local.get $6 i32.const 2 i32.const 2 i32.const 3 i32.const 5904 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $23 + local.tee $22 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15662,10 +15571,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $8 call $std/array/assertSortedDefault - local.get $9 - local.get $4 + local.get $8 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15680,7 +15589,7 @@ local.get $7 call $std/array/assertSortedDefault local.get $7 - local.get $4 + local.get $2 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -15692,10 +15601,10 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $10 call $std/array/assertSortedDefault - local.get $11 - local.get $4 + local.get $10 + local.get $2 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -15707,10 +15616,10 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $12 call $std/array/assertSortedDefault - local.get $13 - local.get $4 + local.get $12 + local.get $2 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -15722,10 +15631,10 @@ call $~lib/builtins/abort unreachable end - local.get $14 + local.get $13 call $std/array/assertSortedDefault - local.get $14 - local.get $4 + local.get $13 + local.get $2 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -15745,39 +15654,39 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $15 + local.get $14 call $~lib/rt/pure/__release - local.get $2 + local.get $3 call $~lib/rt/pure/__release - local.get $21 + local.get $20 call $~lib/rt/pure/__release - local.get $3 + local.get $4 call $~lib/rt/pure/__release local.get $19 call $~lib/rt/pure/__release local.get $16 call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $4 + local.get $2 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $11 + local.get $10 call $~lib/rt/pure/__release - local.get $13 + local.get $12 call $~lib/rt/pure/__release - local.get $14 + local.get $13 call $~lib/rt/pure/__release local.get $17 call $~lib/rt/pure/__release - local.get $22 + local.get $21 call $~lib/rt/pure/__release - local.get $23 + local.get $22 call $~lib/rt/pure/__release i32.const 64 call $std/array/createRandomOrderedArray @@ -15819,25 +15728,25 @@ i32.const 6080 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $6 + local.set $5 i32.const 7 i32.const 2 i32.const 15 i32.const 6128 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $9 + local.set $8 i32.const 1 global.set $~argumentsLength block $__inlined_func$std/array/isSorted<~lib/string/String | null> (result i32) i32.const 1 local.set $2 - local.get $6 + local.get $5 call $~lib/rt/pure/__retain - local.tee $3 + local.tee $4 i32.const 55 call $~lib/array/Array<~lib/array/Array>#sort - local.tee $8 + local.tee $6 call $~lib/rt/pure/__retain local.tee $0 i32.load offset=12 @@ -15856,11 +15765,11 @@ local.get $0 local.get $2 call $~lib/array/Array#__get - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 call $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 i32.const 0 i32.gt_s @@ -15869,14 +15778,14 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $3 call $~lib/rt/pure/__release i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String | null> end local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $3 call $~lib/rt/pure/__release local.get $2 i32.const 1 @@ -15898,12 +15807,12 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $6 call $~lib/rt/pure/__release - local.get $3 + local.get $4 call $~lib/rt/pure/__release - local.get $6 - local.get $9 + local.get $5 + local.get $8 call $std/array/isArraysEqual<~lib/string/String | null> i32.eqz if @@ -15915,7 +15824,7 @@ unreachable end i32.const 0 - local.set $4 + local.set $0 i32.const 16 i32.const 16 call $~lib/rt/tlsf/__alloc @@ -15935,29 +15844,29 @@ i32.const 1600 i32.const 0 call $~lib/rt/tlsf/__alloc - local.tee $0 + local.tee $2 i32.const 0 i32.const 1600 call $~lib/memory/memory.fill - local.get $0 - local.set $2 - local.get $0 + local.get $2 + local.set $3 + local.get $2 local.get $1 i32.load - local.tee $3 + local.tee $4 i32.ne if - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $4 call $~lib/rt/pure/__release end local.get $1 - local.get $2 + local.get $3 i32.store local.get $1 - local.get $0 + local.get $2 i32.store offset=4 local.get $1 i32.const 1600 @@ -15965,24 +15874,24 @@ local.get $1 i32.const 400 i32.store offset=12 - loop $for-loop|06 - local.get $4 + loop $for-loop|09 + local.get $0 i32.const 400 i32.lt_s if - local.get $4 - local.set $2 + local.get $0 + local.set $3 call $~lib/math/NativeMath.random f64.const 32 f64.mul i32.trunc_f64_s local.set $7 i32.const 0 - local.set $8 + local.set $6 i32.const 6064 local.set $0 loop $for-loop|01 - local.get $8 + local.get $6 local.get $7 i32.lt_s if @@ -15995,7 +15904,7 @@ f64.mul f64.floor i32.trunc_f64_s - local.tee $4 + local.tee $2 i32.const 5088 call $~lib/string/String#get:length i32.ge_u @@ -16004,55 +15913,55 @@ i32.const 2 i32.const 1 call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $4 + local.tee $4 + local.get $2 i32.const 1 i32.shl i32.const 5088 i32.add i32.load16_u i32.store16 - local.get $3 + local.get $4 call $~lib/rt/pure/__retain end - local.set $4 + local.set $2 local.get $0 - local.tee $3 + local.tee $4 local.get $0 - local.get $4 + local.get $2 call $~lib/string/String.__concat - local.tee $11 + local.tee $10 local.tee $0 i32.ne if local.get $0 call $~lib/rt/pure/__retain local.set $0 - local.get $3 + local.get $4 call $~lib/rt/pure/__release end - local.get $4 + local.get $2 call $~lib/rt/pure/__release - local.get $11 + local.get $10 call $~lib/rt/pure/__release - local.get $8 + local.get $6 i32.const 1 i32.add - local.set $8 + local.set $6 br $for-loop|01 end end local.get $1 - local.get $2 + local.get $3 local.get $0 call $~lib/array/Array<~lib/array/Array>#__set local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $4 - br $for-loop|06 + local.set $0 + br $for-loop|09 end end i32.const 1 @@ -16060,9 +15969,9 @@ local.get $1 i32.const 56 call $std/array/assertSorted<~lib/array/Array> - local.get $6 + local.get $5 call $~lib/rt/pure/__release - local.get $9 + local.get $8 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release @@ -16098,10 +16007,10 @@ i32.const 6384 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $6 i32.const 6064 call $~lib/array/Array#join - local.tee $9 + local.tee $8 i32.const 6736 call $~lib/string/String.__eq i32.eqz @@ -16122,7 +16031,7 @@ local.tee $7 i32.const 6800 call $~lib/array/Array#join - local.tee $11 + local.tee $10 i32.const 6736 call $~lib/string/String.__eq i32.eqz @@ -16140,10 +16049,10 @@ i32.const 6832 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $13 + local.tee $12 i32.const 6864 call $~lib/array/Array#join - local.tee $14 + local.tee $13 i32.const 6896 call $~lib/string/String.__eq i32.eqz @@ -16161,15 +16070,15 @@ i32.const 6960 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $2 i32.load offset=4 - local.get $4 + local.get $2 i32.load offset=12 call $~lib/util/string/joinFloatArray - local.set $2 + local.set $3 i32.const 7024 call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 8112 call $~lib/string/String.__eq i32.eqz @@ -16208,20 +16117,20 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $4 i32.load offset=4 - local.tee $6 + local.tee $5 i32.const 0 call $std/array/Ref#constructor i32.store - local.get $6 + local.get $5 i32.const 0 i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 call $std/array/Ref#constructor i32.store offset=8 - local.get $3 + local.get $4 call $~lib/array/Array#join local.tee $18 i32.const 8320 @@ -16241,19 +16150,19 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $5 i32.load offset=4 - local.tee $15 + local.tee $14 i32.const 0 call $std/array/Ref#constructor i32.store - local.get $15 + local.get $14 i32.const 0 call $std/array/Ref#constructor i32.store offset=4 - local.get $6 + local.get $5 call $~lib/array/Array#join - local.tee $15 + local.tee $14 i32.const 8400 call $~lib/string/String.__eq i32.eqz @@ -16269,33 +16178,33 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $8 + local.get $6 call $~lib/rt/pure/__release - local.get $9 + local.get $8 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $11 - call $~lib/rt/pure/__release - local.get $13 + local.get $10 call $~lib/rt/pure/__release - local.get $14 + local.get $12 call $~lib/rt/pure/__release - local.get $4 + local.get $13 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release local.get $16 call $~lib/rt/pure/__release local.get $17 call $~lib/rt/pure/__release - local.get $3 + local.get $4 call $~lib/rt/pure/__release local.get $18 call $~lib/rt/pure/__release - local.get $6 + local.get $5 call $~lib/rt/pure/__release - local.get $15 + local.get $14 call $~lib/rt/pure/__release i32.const 0 i32.const 2 @@ -16303,29 +16212,29 @@ i32.const 8480 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $2 + local.set $3 i32.const 1 i32.const 2 i32.const 3 i32.const 8496 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $3 + local.set $4 i32.const 2 i32.const 2 i32.const 3 i32.const 8528 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $6 + local.set $5 i32.const 4 i32.const 2 i32.const 3 i32.const 8560 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $8 - local.get $2 + local.set $6 + local.get $3 i32.const 6304 call $~lib/array/Array#join local.tee $0 @@ -16341,11 +16250,11 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 6304 call $~lib/array/Array#join local.tee $0 - local.set $23 + local.set $22 local.get $0 i32.const 8208 call $~lib/string/String.__eq @@ -16358,7 +16267,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $5 i32.const 6304 call $~lib/array/Array#join local.tee $0 @@ -16375,7 +16284,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $6 i32.const 6304 call $~lib/array/Array#join local.tee $0 @@ -16398,9 +16307,9 @@ i32.const 8656 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $8 i32.load offset=4 - local.get $9 + local.get $8 i32.load offset=12 call $~lib/util/string/joinIntegerArray local.set $7 @@ -16424,15 +16333,15 @@ i32.const 8720 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $11 + local.tee $10 i32.load offset=4 - local.get $11 + local.get $10 i32.load offset=12 call $~lib/util/string/joinIntegerArray - local.set $13 + local.set $12 i32.const 6304 call $~lib/rt/pure/__release - local.get $13 + local.get $12 i32.const 8752 call $~lib/string/String.__eq i32.eqz @@ -16450,9 +16359,9 @@ i32.const 8800 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $14 + local.tee $13 i32.load offset=4 - local.get $14 + local.get $13 i32.load offset=12 call $~lib/util/string/joinIntegerArray local.set $16 @@ -16571,10 +16480,10 @@ local.get $0 i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array> - local.set $15 + local.set $14 i32.const 6304 call $~lib/rt/pure/__release - local.get $15 + local.get $14 i32.const 9360 call $~lib/string/String.__eq i32.eqz @@ -16594,7 +16503,7 @@ call $~lib/rt/pure/__retain local.tee $1 i32.load offset=4 - local.tee $4 + local.tee $2 i32.const 2 i32.const 0 i32.const 6 @@ -16602,7 +16511,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $4 + local.get $2 i32.const 2 i32.const 0 i32.const 6 @@ -16615,10 +16524,10 @@ local.get $1 i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array> - local.set $21 + local.set $20 i32.const 6304 call $~lib/rt/pure/__release - local.get $21 + local.get $20 i32.const 9360 call $~lib/string/String.__eq i32.eqz @@ -16636,7 +16545,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $2 i32.load offset=4 i32.const 1 i32.const 2 @@ -16655,9 +16564,9 @@ i32.store local.get $33 i32.store - local.get $4 + local.get $2 i32.load offset=4 - local.get $4 + local.get $2 i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> local.set $19 @@ -16675,30 +16584,30 @@ call $~lib/builtins/abort unreachable end - local.get $2 - call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $4 call $~lib/rt/pure/__release - local.get $8 + local.get $5 call $~lib/rt/pure/__release + local.get $6 call $~lib/rt/pure/__release - local.get $23 + call $~lib/rt/pure/__release + local.get $22 call $~lib/rt/pure/__release local.get $24 call $~lib/rt/pure/__release local.get $25 call $~lib/rt/pure/__release - local.get $9 + local.get $8 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $11 + local.get $10 call $~lib/rt/pure/__release - local.get $13 + local.get $12 call $~lib/rt/pure/__release - local.get $14 + local.get $13 call $~lib/rt/pure/__release local.get $16 call $~lib/rt/pure/__release @@ -16714,9 +16623,9 @@ call $~lib/rt/pure/__release local.get $32 call $~lib/rt/pure/__release - local.get $15 + local.get $14 call $~lib/rt/pure/__release - local.get $21 + local.get $20 call $~lib/rt/pure/__release local.get $19 call $~lib/rt/pure/__release @@ -16728,9 +16637,9 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $5 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.const 2 i32.const 3 @@ -16738,7 +16647,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $2 + local.get $3 i32.const 3 i32.const 2 i32.const 3 @@ -16746,7 +16655,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 - local.get $2 + local.get $3 i32.const 3 i32.const 2 i32.const 3 @@ -16754,7 +16663,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=8 - local.get $2 + local.get $3 i32.const 3 i32.const 2 i32.const 3 @@ -16762,9 +16671,9 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=12 - local.get $6 + local.get $5 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $8 + local.tee $6 i32.load offset=12 i32.const 10 i32.ne @@ -16777,14 +16686,14 @@ unreachable end loop $for-loop|1 - local.get $12 + local.get $11 i32.const 10 i32.lt_s if - local.get $8 - local.get $12 + local.get $6 + local.get $11 call $~lib/array/Array#__get - local.get $12 + local.get $11 i32.ne if i32.const 0 @@ -16794,10 +16703,10 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $11 i32.const 1 i32.add - local.set $12 + local.set $11 br $for-loop|1 end end @@ -16807,9 +16716,9 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $8 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.const 2 i32.const 15 @@ -16817,7 +16726,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $2 + local.get $3 i32.const 3 i32.const 2 i32.const 15 @@ -16825,7 +16734,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 - local.get $2 + local.get $3 i32.const 3 i32.const 2 i32.const 15 @@ -16833,7 +16742,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=8 - local.get $2 + local.get $3 i32.const 1 i32.const 2 i32.const 15 @@ -16841,17 +16750,17 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=12 - local.get $9 + local.get $8 call $~lib/array/Array<~lib/array/Array<~lib/string/String | null>>#flat - local.set $2 + local.set $3 i32.const 8 i32.const 2 i32.const 15 i32.const 9968 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $3 - local.get $2 + local.set $4 + local.get $3 i32.load offset=12 i32.const 8 i32.ne @@ -16864,21 +16773,21 @@ unreachable end i32.const 0 - local.set $12 + local.set $11 loop $for-loop|2 - local.get $12 - local.get $3 + local.get $11 + local.get $4 i32.load offset=12 i32.lt_s if - local.get $2 - local.get $12 + local.get $3 + local.get $11 call $~lib/array/Array#__get local.tee $7 - local.get $3 - local.get $12 + local.get $4 + local.get $11 call $~lib/array/Array#__get - local.tee $11 + local.tee $10 call $~lib/string/String.__eq i32.eqz if @@ -16891,168 +16800,1298 @@ end local.get $7 call $~lib/rt/pure/__release - local.get $11 + local.get $10 call $~lib/rt/pure/__release - local.get $12 + local.get $11 + i32.const 1 + i32.add + local.set $11 + br $for-loop|2 + end + end + i32.const 2 + i32.const 2 + i32.const 12 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $11 + i32.load offset=4 + local.tee $7 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 10016 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + i32.store + local.get $7 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 10032 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + i32.store offset=4 + local.get $11 + call $~lib/array/Array<~lib/array/Array>#flat + local.tee $7 + i32.load offset=12 + if + i32.const 0 + i32.const 1296 + i32.const 1061 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $11 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $23 + call $~lib/rt/pure/__release + local.get $15 + call $~lib/rt/pure/__release + local.get $28 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + ) + (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + i32.eqz + if + i32.const 16 + i32.const 6 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + i32.const 0 + i32.store + 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 1073741808 + i32.gt_u + if + i32.const 1040 + i32.const 1088 + i32.const 57 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.tee $3 + i32.const 0 + local.get $1 + call $~lib/memory/memory.fill + local.get $3 + local.set $2 + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $4 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=12 + local.get $0 + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=12 + drop + local.get $0 + local.get $1 + i32.const 0 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.store offset=12 + ) + (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.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 $4 + local.get $3 + i32.lt_s + select + i32.lt_s + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.add + i32.load8_u + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + 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 $12 + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (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 $4 + local.get $3 + i32.lt_s + select + i32.lt_s + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.add + i32.load8_u + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + 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 $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.tee $3 + if (result i32) + local.get $2 + local.get $3 + i32.ge_s + else + i32.const 1 + end + 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 + 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 $0 + i32.load offset=4 + local.get $3 + i32.add + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.store offset=12 + local.get $2 + ) + (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.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + 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 1073741808 + i32.gt_u + if + i32.const 1040 + i32.const 1088 + i32.const 229 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=4 + local.tee $5 + local.get $0 + i32.load offset=4 + local.get $3 + call $~lib/memory/memory.copy + local.get $3 + local.get $5 + i32.add + local.get $1 + i32.load offset=4 + local.get $4 + call $~lib/memory/memory.copy + local.get $1 + call $~lib/rt/pure/__release + 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 $2 + local.get $1 + i32.lt_s + select + call $~lib/memory/memory.copy + local.get $0 + call $~lib/rt/pure/__retain + ) + (func $~lib/array/Array#pop (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 1 + i32.lt_s + if + i32.const 1984 + i32.const 1088 + i32.const 300 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#forEach (param $0 i32) (param $1 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 $4 + local.get $3 + i32.lt_s + select + i32.lt_s + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.add + i32.load8_u + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + 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/array/Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 0 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $4 + 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 $5 + local.get $3 + i32.lt_s + select + i32.lt_s + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.add + i32.load8_u + local.set $3 + i32.const 3 + global.set $~argumentsLength + local.get $3 + local.get $2 + local.get $0 + local.get $1 + 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 + local.get $4 + ) + (func $~lib/array/Array#shift (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 1 + i32.lt_s + if + i32.const 1984 + i32.const 1088 + i32.const 361 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.tee $2 + i32.load8_u + local.get $2 + local.get $2 + i32.const 1 + i32.add + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + call $~lib/memory/memory.copy + local.get $1 + local.get $2 + i32.add + i32.const 0 + i32.store8 + local.get $0 + local.get $1 + i32.store offset=12 + ) + (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 + 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 $4 + local.get $3 + i32.lt_s + select + i32.lt_s + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.add + i32.load8_u + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + 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.get $0 + i32.load offset=12 + i32.const 1 + i32.add + local.tee $2 + i32.const 0 + call $~lib/array/ensureSize + local.get $0 + i32.load offset=4 + local.tee $3 + i32.const 1 + i32.add + local.get $3 + local.get $2 + i32.const 1 + i32.sub + call $~lib/memory/memory.copy + local.get $3 + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.store offset=12 + local.get $2 + ) + (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + 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 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.get $1 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $3 + i32.load offset=4 + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + call $~lib/memory/memory.copy + 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.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 + 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 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + i32.load offset=4 + local.get $0 + i32.load offset=4 + local.tee $5 + local.get $1 + i32.add + local.tee $6 + local.get $2 + 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 $1 + local.get $5 + i32.add + local.get $3 + local.get $1 + i32.sub + call $~lib/memory/memory.copy + end + local.get $0 + local.get $3 + local.get $2 + i32.sub + i32.store offset=12 + local.get $4 + ) + (func $~lib/array/Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.tee $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.add + local.set $1 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.lt_u + if + local.get $2 + i32.load8_u + local.set $3 + local.get $2 + local.get $1 + i32.load8_u + i32.store8 + local.get $1 + local.get $3 + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|0 + end + end + end + local.get $0 + call $~lib/rt/pure/__retain + ) + (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 + i32.const 0 + 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.const 31 + i32.and + 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 + 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.const 31 + i32.and + 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 $5 + local.get $1 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + local.get $1 + i32.const 1 + i32.shl + i32.add + local.tee $3 + local.get $4 + i32.lt_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 + 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.const 31 + i32.and + 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 - i32.const 2 - i32.const 2 - i32.const 12 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $12 - i32.load offset=4 - local.tee $7 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 10016 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - i32.store - local.get $7 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 10032 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - i32.store offset=4 - local.get $12 - call $~lib/array/Array<~lib/array/Array>#flat - local.tee $7 - i32.load offset=12 - if - i32.const 0 - i32.const 1296 - i32.const 1061 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $12 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release + call $~lib/rt/tlsf/maybeInitialize local.get $5 - call $~lib/rt/pure/__release - local.get $20 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $28 - call $~lib/rt/pure/__release + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + i32.load8_u offset=1 + local.set $1 local.get $0 - i32.load offset=12 - drop local.get $0 - local.get $1 - call $~lib/array/ensureSize + i32.load8_u + i32.store8 offset=1 local.get $0 local.get $1 - i32.store offset=12 + i32.store8 ) - (func $~lib/array/Array#slice (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) + (local $7 i32) + (local $8 i32) 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.tee $2 + i32.const 1 + i32.le_s + if + local.get $0 + call $~lib/rt/pure/__retain + 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.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 - i32.add - local.tee $1 - i32.const 0 local.get $1 + call_indirect (type $i32_i32_=>_i32) i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $3 - local.get $1 - local.get $3 i32.lt_s - select + if + local.get $5 + local.get $3 + i32.store8 offset=1 + local.get $5 + local.get $2 + i32.store8 + end + local.get $0 + call $~lib/rt/pure/__retain + return end - local.set $1 local.get $2 - i32.const 0 + i32.const 256 i32.lt_s - if (result i32) - local.get $2 - local.get $3 - i32.add - local.tee $2 - i32.const 0 + if local.get $2 - i32.const 0 - i32.gt_s - select + local.set $3 + local.get $1 + local.set $4 + loop $for-loop|0 + local.get $6 + local.get $3 + i32.lt_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 + 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 + local.get $5 local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.lt_s - select + local.get $1 + call $~lib/util/sort/weakHeapSort end - local.get $1 - i32.sub - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $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 - local.get $3 + call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#flat (param $0 i32) (result i32) + (func $~lib/array/Array#flat (param $0 i32) (result i32) i32.const 10048 i32.const 1088 i32.const 499 @@ -17207,7 +18246,7 @@ i32.sub call $~lib/rt/pure/decrement ) - (func $~lib/array/Array#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor@varargs (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -17221,9 +18260,9 @@ end local.get $0 local.get $1 - call $~lib/array/Array#constructor + call $~lib/array/Array#constructor ) - (func $~lib/array/Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (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 @@ -17245,9 +18284,9 @@ local.get $1 local.get $2 local.get $3 - call $~lib/array/Array#fill + call $~lib/array/Array#fill ) - (func $~lib/array/Array#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -17264,9 +18303,11 @@ local.get $0 local.get $1 local.get $2 - call $~lib/array/Array#includes + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s ) - (func $~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -17283,9 +18324,9 @@ local.get $0 local.get $1 local.get $2 - call $~lib/array/Array#indexOf + call $~lib/array/Array#indexOf ) - (func $~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) block $1of1 block $0of1 @@ -17301,7 +18342,7 @@ i32.load offset=12 local.set $2 end - block $__inlined_func$~lib/array/Array#lastIndexOf + block $__inlined_func$~lib/array/Array#lastIndexOf local.get $0 local.tee $3 i32.load offset=12 @@ -17310,7 +18351,7 @@ if i32.const -1 local.set $0 - br $__inlined_func$~lib/array/Array#lastIndexOf + br $__inlined_func$~lib/array/Array#lastIndexOf end local.get $0 local.get $2 @@ -17336,15 +18377,15 @@ i32.const 0 i32.ge_s if - local.get $1 - local.get $2 local.get $0 - i32.const 2 - i32.shl + local.get $2 i32.add - i32.load + i32.load8_u + local.get $1 + i32.const 255 + i32.and i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf + br_if $__inlined_func$~lib/array/Array#lastIndexOf local.get $0 i32.const 1 i32.sub @@ -17357,7 +18398,7 @@ end local.get $0 ) - (func $~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (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 @@ -17375,9 +18416,9 @@ local.get $1 local.get $2 local.get $3 - call $~lib/array/Array#copyWithin + call $~lib/array/Array#copyWithin ) - (func $~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 block $1of2 block $0of2 @@ -17396,9 +18437,9 @@ local.get $0 local.get $1 local.get $2 - call $~lib/array/Array#slice + call $~lib/array/Array#slice ) - (func $~lib/array/Array#splice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#splice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -17415,9 +18456,25 @@ local.get $0 local.get $1 local.get $2 - call $~lib/array/Array#splice + call $~lib/array/Array#splice + ) + (func $~lib/array/Array#sort@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 57 + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/array/Array#sort ) - (func $~lib/array/Array#join@varargs (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join@varargs (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -17431,7 +18488,7 @@ end local.get $0 local.get $1 - call $~lib/array/Array#join + call $~lib/array/Array#join ) (func $~setArgumentsLength (param $0 i32) local.get $0 diff --git a/tests/compiler/std/array.ts b/tests/compiler/std/array.ts index 58098b85cc..e66c064ed9 100644 --- a/tests/compiler/std/array.ts +++ b/tests/compiler/std/array.ts @@ -1061,6 +1061,8 @@ __release(changetype(arr)); assert(testArray.flat().length == 0); } -// export extended Array +// export extended arrays -export class ExtendedArray extends Array {} \ No newline at end of file +export class ArrayU32 extends Array {} +export class ArrayU8 extends Array {} +export class ArrayArrayI32 extends Array> {} \ No newline at end of file From 9e1b69a9c55f262d1e3111123cc7744ce899ccea Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Wed, 24 Jun 2020 23:55:28 +0300 Subject: [PATCH 3/4] fix --- std/assembly/array.ts | 8 +- tests/compiler/std/array.optimized.wat | 3930 ++- tests/compiler/std/array.ts | 4 +- tests/compiler/std/array.untouched.wat | 31626 +++++++++++++++++++++++ 4 files changed, 34579 insertions(+), 989 deletions(-) diff --git a/std/assembly/array.ts b/std/assembly/array.ts index 83a26bd24a..8c85724ad4 100644 --- a/std/assembly/array.ts +++ b/std/assembly/array.ts @@ -367,8 +367,12 @@ export class Array { base + sizeof(), lastIndex << alignof() ); - // @ts-ignore - store(base + (lastIndex << alignof()), 0); + if (isReference()) { + store(base + (lastIndex << alignof()), 0); + } else { + // @ts-ignore + store(base + (lastIndex << alignof()), 0); + } this.length_ = lastIndex; return element; // no need to retain -> is moved } diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index c6f5228172..7cd6405492 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -2,9 +2,9 @@ (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 (func (param i32) (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_=>_none (func (param i32))) (type $none_=>_i32 (func (result i32))) (type $none_=>_f64 (func (result f64))) @@ -254,35 +254,89 @@ (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) (global $~started (mut i32) (i32.const 0)) - (global $std/array/ExtendedArray i32 (i32.const 26)) + (global $std/array/ArrayU32 i32 (i32.const 26)) + (global $std/array/ArrayU8 i32 (i32.const 27)) + (global $std/array/ArrayStr i32 (i32.const 28)) (export "_start" (func $~start)) (export "memory" (memory $0)) - (export "ExtendedArray" (global $std/array/ExtendedArray)) - (export "ExtendedArray#constructor" (func $~lib/array/Array#constructor@varargs)) - (export "ExtendedArray#get:length" (func $~lib/array/Array#get:length)) - (export "ExtendedArray#set:length" (func $~lib/array/Array#set:length)) - (export "ExtendedArray#every" (func $~lib/array/Array#every)) - (export "ExtendedArray#findIndex" (func $~lib/array/Array#findIndex)) - (export "ExtendedArray#fill" (func $~lib/array/Array#fill@varargs)) - (export "ExtendedArray#includes" (func $~lib/array/Array#includes@varargs)) - (export "ExtendedArray#indexOf" (func $~lib/array/Array#indexOf@varargs)) - (export "ExtendedArray#lastIndexOf" (func $~lib/array/Array#lastIndexOf@varargs)) - (export "ExtendedArray#push" (func $~lib/array/Array#push)) - (export "ExtendedArray#concat" (func $~lib/array/Array#concat)) - (export "ExtendedArray#copyWithin" (func $~lib/array/Array#copyWithin@varargs)) - (export "ExtendedArray#pop" (func $~lib/array/Array#pop)) - (export "ExtendedArray#forEach" (func $~lib/array/Array#forEach)) - (export "ExtendedArray#filter" (func $~lib/array/Array#filter)) - (export "ExtendedArray#shift" (func $~lib/array/Array#shift)) - (export "ExtendedArray#some" (func $~lib/array/Array#some)) - (export "ExtendedArray#unshift" (func $~lib/array/Array#unshift)) - (export "ExtendedArray#slice" (func $~lib/array/Array#slice@varargs)) - (export "ExtendedArray#splice" (func $~lib/array/Array#splice@varargs)) - (export "ExtendedArray#reverse" (func $~lib/array/Array#reverse)) - (export "ExtendedArray#sort" (func $~lib/array/Array#sort@varargs)) - (export "ExtendedArray#join" (func $~lib/array/Array#join@varargs)) - (export "ExtendedArray#flat" (func $~lib/array/Array#flat)) - (export "ExtendedArray#toString" (func $~lib/array/Array#toString)) + (export "ArrayU32" (global $std/array/ArrayU32)) + (export "ArrayU32#constructor" (func $~lib/array/Array#constructor@varargs)) + (export "ArrayU32#get:length" (func $~lib/array/Array#get:length)) + (export "ArrayU32#set:length" (func $~lib/array/Array#set:length)) + (export "ArrayU32#every" (func $~lib/array/Array#every)) + (export "ArrayU32#findIndex" (func $~lib/array/Array#findIndex)) + (export "ArrayU32#fill" (func $~lib/array/Array#fill@varargs)) + (export "ArrayU32#includes" (func $~lib/array/Array#includes@varargs)) + (export "ArrayU32#indexOf" (func $~lib/array/Array#indexOf@varargs)) + (export "ArrayU32#lastIndexOf" (func $~lib/array/Array#lastIndexOf@varargs)) + (export "ArrayU32#push" (func $~lib/array/Array#push)) + (export "ArrayU32#concat" (func $~lib/array/Array#concat)) + (export "ArrayU32#copyWithin" (func $~lib/array/Array#copyWithin@varargs)) + (export "ArrayU32#pop" (func $~lib/array/Array#pop)) + (export "ArrayU32#forEach" (func $~lib/array/Array#forEach)) + (export "ArrayU32#filter" (func $~lib/array/Array#filter)) + (export "ArrayU32#shift" (func $~lib/array/Array#shift)) + (export "ArrayU32#some" (func $~lib/array/Array#some)) + (export "ArrayU32#unshift" (func $~lib/array/Array#unshift)) + (export "ArrayU32#slice" (func $~lib/array/Array#slice@varargs)) + (export "ArrayU32#splice" (func $~lib/array/Array#splice@varargs)) + (export "ArrayU32#reverse" (func $~lib/array/Array#reverse)) + (export "ArrayU32#sort" (func $~lib/array/Array#sort@varargs)) + (export "ArrayU32#join" (func $~lib/array/Array#join@varargs)) + (export "ArrayU32#flat" (func $~lib/array/Array#flat)) + (export "ArrayU32#toString" (func $~lib/array/Array#toString)) + (export "ArrayU8" (global $std/array/ArrayU8)) + (export "ArrayU8#constructor" (func $~lib/array/Array#constructor@varargs)) + (export "ArrayU8#get:length" (func $~lib/array/Array#get:length)) + (export "ArrayU8#set:length" (func $~lib/array/Array#set:length)) + (export "ArrayU8#every" (func $~lib/array/Array#every)) + (export "ArrayU8#findIndex" (func $~lib/array/Array#findIndex)) + (export "ArrayU8#fill" (func $~lib/array/Array#fill@varargs)) + (export "ArrayU8#includes" (func $~lib/array/Array#includes@varargs)) + (export "ArrayU8#indexOf" (func $~lib/array/Array#indexOf@varargs)) + (export "ArrayU8#lastIndexOf" (func $~lib/array/Array#lastIndexOf@varargs)) + (export "ArrayU8#push" (func $~lib/array/Array#push)) + (export "ArrayU8#concat" (func $~lib/array/Array#concat)) + (export "ArrayU8#copyWithin" (func $~lib/array/Array#copyWithin@varargs)) + (export "ArrayU8#pop" (func $~lib/array/Array#pop)) + (export "ArrayU8#forEach" (func $~lib/array/Array#forEach)) + (export "ArrayU8#filter" (func $~lib/array/Array#filter)) + (export "ArrayU8#shift" (func $~lib/array/Array#shift)) + (export "ArrayU8#some" (func $~lib/array/Array#some)) + (export "ArrayU8#unshift" (func $~lib/array/Array#unshift)) + (export "ArrayU8#slice" (func $~lib/array/Array#slice@varargs)) + (export "ArrayU8#splice" (func $~lib/array/Array#splice@varargs)) + (export "ArrayU8#reverse" (func $~lib/array/Array#reverse)) + (export "ArrayU8#sort" (func $~lib/array/Array#sort@varargs)) + (export "ArrayU8#join" (func $~lib/array/Array#join@varargs)) + (export "ArrayU8#flat" (func $~lib/array/Array#flat)) + (export "ArrayU8#toString" (func $~lib/array/Array#toString)) + (export "ArrayStr" (global $std/array/ArrayStr)) + (export "ArrayStr#constructor" (func $~lib/array/Array<~lib/string/String>#constructor@varargs)) + (export "ArrayStr#get:length" (func $~lib/array/Array#get:length)) + (export "ArrayStr#set:length" (func $~lib/array/Array#set:length)) + (export "ArrayStr#every" (func $~lib/array/Array#every)) + (export "ArrayStr#findIndex" (func $~lib/array/Array#findIndex)) + (export "ArrayStr#fill" (func $~lib/array/Array<~lib/string/String>#fill@varargs)) + (export "ArrayStr#includes" (func $~lib/array/Array<~lib/string/String>#includes@varargs)) + (export "ArrayStr#indexOf" (func $~lib/array/Array<~lib/string/String>#indexOf@varargs)) + (export "ArrayStr#lastIndexOf" (func $~lib/array/Array<~lib/string/String>#lastIndexOf@varargs)) + (export "ArrayStr#push" (func $~lib/array/Array<~lib/string/String>#push)) + (export "ArrayStr#concat" (func $~lib/array/Array<~lib/string/String>#concat)) + (export "ArrayStr#copyWithin" (func $~lib/array/Array<~lib/string/String>#copyWithin@varargs)) + (export "ArrayStr#pop" (func $~lib/array/Array<~lib/string/String>#pop)) + (export "ArrayStr#forEach" (func $~lib/array/Array#forEach)) + (export "ArrayStr#filter" (func $~lib/array/Array<~lib/string/String>#filter)) + (export "ArrayStr#shift" (func $~lib/array/Array<~lib/string/String>#shift)) + (export "ArrayStr#some" (func $~lib/array/Array#some)) + (export "ArrayStr#unshift" (func $~lib/array/Array<~lib/string/String>#unshift)) + (export "ArrayStr#slice" (func $~lib/array/Array<~lib/string/String>#slice@varargs)) + (export "ArrayStr#splice" (func $~lib/array/Array<~lib/string/String>#splice@varargs)) + (export "ArrayStr#reverse" (func $~lib/array/Array<~lib/string/String>#reverse)) + (export "ArrayStr#sort" (func $~lib/array/Array<~lib/string/String>#sort@varargs)) + (export "ArrayStr#join" (func $~lib/array/Array<~lib/string/String>#join@varargs)) + (export "ArrayStr#flat" (func $~lib/array/Array#flat)) + (export "ArrayStr#toString" (func $~lib/array/Array<~lib/string/String | null>#toString)) (export "__setArgumentsLength" (func $~setArgumentsLength)) (func $~lib/rt/pure/__release (param $0 i32) local.get $0 @@ -2380,29 +2434,30 @@ i32.store offset=8 end ) - (func $~lib/array/Array#push (param $0 i32) (param $1 i32) + (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 $2 + local.tee $3 i32.const 1 i32.add - local.tee $3 + local.tee $2 i32.const 2 call $~lib/array/ensureSize local.get $0 i32.load offset=4 - local.get $2 + local.get $3 i32.const 2 i32.shl i32.add local.get $1 i32.store local.get $0 - local.get $3 + local.get $2 i32.store offset=12 + local.get $2 ) (func $~lib/array/Array#pop (param $0 i32) (result i32) (local $1 i32) @@ -2434,6 +2489,52 @@ local.get $1 i32.store offset=12 ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + i32.load offset=12 + local.tee $2 + local.get $1 + i32.gt_s + if + local.get $0 + i32.load offset=4 + local.tee $4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $3 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $do-continue|0 + local.get $3 + i32.load + call $~lib/rt/pure/__release + local.get $3 + i32.const 4 + i32.add + local.tee $3 + local.get $2 + i32.lt_u + br_if $do-continue|0 + end + else + local.get $0 + local.get $1 + i32.const 2 + call $~lib/array/ensureSize + end + local.get $0 + local.get $1 + i32.store offset=12 + ) (func $~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -2596,7 +2697,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) + (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -2625,6 +2726,100 @@ local.get $0 local.get $2 i32.store offset=12 + 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.tee $1 + i32.const 1 + i32.lt_s + if + i32.const 1984 + i32.const 1088 + i32.const 361 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.tee $2 + i32.load + local.get $2 + local.get $2 + i32.const 4 + i32.add + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 2 + i32.shl + local.tee $4 + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.tee $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 $1 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.lt_u + if + local.get $2 + i32.load + local.set $3 + local.get $2 + local.get $1 + i32.load + i32.store + local.get $1 + local.get $3 + i32.store + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $1 + i32.const 4 + i32.sub + local.set $1 + br $while-continue|0 + end + end + end + local.get $0 + call $~lib/rt/pure/__retain ) (func $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -3111,6 +3306,7 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push + drop local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -3191,6 +3387,7 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push + drop local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -3275,6 +3472,7 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push + drop local.get $1 call $~lib/rt/pure/__release local.get $0 @@ -3353,6 +3551,7 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push + drop local.get $0 global.get $std/array/i i32.add @@ -3408,6 +3607,7 @@ i32.const 100 i32.add call $~lib/array/Array#push + drop local.get $3 i32.const 1 i32.add @@ -3444,6 +3644,7 @@ i32.const 200 i32.add call $~lib/array/Array#push + drop local.get $3 i32.const 1 i32.add @@ -3502,6 +3703,7 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push + drop local.get $0 global.get $std/array/i i32.add @@ -3644,6 +3846,7 @@ local.get $4 local.get $3 call $~lib/array/Array#push + drop end local.get $2 i32.const 1 @@ -3660,6 +3863,7 @@ local.tee $1 i32.const 100 call $~lib/array/Array#push + drop local.get $0 global.get $std/array/i i32.add @@ -3770,6 +3974,7 @@ local.tee $2 i32.const 1 call $~lib/array/Array#push + drop local.get $2 call $~lib/rt/pure/__release local.get $0 @@ -5251,6 +5456,22 @@ i32.lt_u i32.sub ) + (func $~lib/array/Array#sort@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 47 + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/array/Array#sort + ) (func $std/array/createReverseOrderedArray (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -6242,6 +6463,81 @@ call $~lib/rt/pure/__release i32.const 1 ) + (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) + (local $5 i32) + local.get $0 + i32.eqz + if + i32.const 16 + i32.const 16 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + i32.const 0 + i32.store + 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 268435452 + i32.gt_u + if + i32.const 1040 + i32.const 1088 + i32.const 57 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + local.tee $5 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.tee $3 + i32.const 0 + local.get $5 + call $~lib/memory/memory.fill + local.get $3 + local.set $2 + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $4 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $2 + i32.store + 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 $1 + i32.store offset=12 + local.get $0 + ) (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -9401,6 +9697,11 @@ call $~lib/rt/pure/__release local.get $1 ) + (func $~lib/array/Array<~lib/string/String | null>#toString (param $0 i32) (result i32) + local.get $0 + i32.const 6304 + call $~lib/array/Array<~lib/string/String | null>#join + ) (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -9921,6 +10222,11 @@ call $~lib/rt/pure/__release local.get $1 ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 6304 + call $~lib/array/Array#join + ) (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) @@ -10957,6 +11263,7 @@ global.get $std/array/arr i32.const 42 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 0 call $~lib/array/Array#__get @@ -11031,6 +11338,7 @@ global.get $std/array/arr i32.const 43 call $~lib/array/Array#push + drop global.get $std/array/arr i32.load offset=12 i32.const 1 @@ -11071,6 +11379,7 @@ global.get $std/array/arr i32.const 44 call $~lib/array/Array#push + drop global.get $std/array/arr i32.load offset=12 i32.const 2 @@ -11124,6 +11433,7 @@ global.get $std/array/arr i32.const 45 call $~lib/array/Array#push + drop global.get $std/array/arr i32.load offset=12 i32.const 3 @@ -11204,40 +11514,8 @@ call $std/array/Ref#constructor i32.store offset=4 local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 0 - i32.gt_s - if - local.get $0 - i32.load offset=4 - local.tee $2 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.set $1 - loop $do-continue|0 - local.get $2 - i32.load - call $~lib/rt/pure/__release - local.get $2 - i32.const 4 - i32.add - local.tee $2 - local.get $1 - i32.lt_u - br_if $do-continue|0 - end - else - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/array/ensureSize - end - local.get $0 i32.const 0 - i32.store offset=12 + call $~lib/array/Array#set:length local.get $0 i32.load offset=12 if @@ -11357,9 +11635,11 @@ local.get $1 i32.const 46 call $~lib/array/Array#push + drop local.get $1 i32.const 47 call $~lib/array/Array#push + drop global.get $std/array/arr local.get $1 call $~lib/array/Array#concat @@ -11973,6 +12253,7 @@ global.get $std/array/arr i32.const 42 call $~lib/array/Array#unshift + drop global.get $std/array/arr i32.load offset=12 i32.const 4 @@ -12052,6 +12333,7 @@ global.get $std/array/arr i32.const 41 call $~lib/array/Array#unshift + drop global.get $std/array/arr i32.load offset=12 i32.const 5 @@ -12142,43 +12424,7 @@ unreachable end global.get $std/array/arr - local.tee $1 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.lt_s - if - i32.const 1984 - i32.const 1088 - i32.const 361 - i32.const 21 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=4 - local.tee $0 - i32.load - local.get $0 - local.get $0 - i32.const 4 - i32.add - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 2 - i32.shl - local.tee $4 - call $~lib/memory/memory.copy - local.get $0 - local.get $4 - i32.add - i32.const 0 - i32.store - local.get $1 - local.get $2 - i32.store offset=12 + call $~lib/array/Array#shift global.set $std/array/i global.get $std/array/i i32.const 41 @@ -12345,49 +12591,8 @@ unreachable end global.get $std/array/arr - local.tee $1 - i32.load offset=12 - local.tee $2 - if - local.get $1 - i32.load offset=4 - local.set $0 - local.get $1 - i32.load offset=4 - local.get $2 - i32.const 1 - i32.sub - i32.const 2 - i32.shl - i32.add - local.set $2 - loop $while-continue|0 - local.get $0 - local.get $2 - i32.lt_u - if - local.get $0 - i32.load - local.set $1 - local.get $0 - local.get $2 - i32.load - i32.store - local.get $2 - local.get $1 - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - br $while-continue|0 - end - end - end + call $~lib/array/Array#reverse + call $~lib/rt/pure/__release global.get $std/array/arr i32.load offset=12 i32.const 3 @@ -12454,9 +12659,11 @@ global.get $std/array/arr i32.const 43 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 44 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 44 i32.const 0 @@ -12644,7 +12851,7 @@ local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|019 + loop $while-continue|0 local.get $0 local.get $2 i32.lt_s @@ -12662,7 +12869,7 @@ i32.const 1 i32.add local.set $0 - br $while-continue|019 + br $while-continue|0 end end i32.const -1 @@ -12708,7 +12915,7 @@ local.get $9 i32.load offset=4 local.set $4 - loop $while-continue|020 + loop $while-continue|019 local.get $0 local.get $3 i32.lt_s @@ -12726,7 +12933,7 @@ i32.const 1 i32.add local.set $0 - br $while-continue|020 + br $while-continue|019 end end i32.const -1 @@ -12893,24 +13100,24 @@ i32.const 3280 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 - i32.load offset=12 local.tee $2 + i32.load offset=12 + local.tee $3 if (result i32) i32.const 0 - local.get $2 + local.get $3 i32.ge_s else i32.const 1 end br_if $__inlined_func$~lib/array/Array#includes drop - local.get $3 + local.get $2 i32.load offset=4 local.set $9 - loop $while-continue|021 + loop $while-continue|020 local.get $0 - local.get $2 + local.get $3 i32.lt_s if i32.const 1 @@ -12936,7 +13143,7 @@ i32.const 1 i32.add local.set $0 - br $while-continue|021 + br $while-continue|020 end end i32.const 0 @@ -12952,7 +13159,7 @@ end block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $2 + local.set $0 i32.const 0 i32.const 1 i32.const 3 @@ -12960,7 +13167,7 @@ i32.const 3312 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 + local.tee $3 i32.load offset=12 local.tee $4 if (result i32) @@ -12972,17 +13179,17 @@ end br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $3 i32.load offset=4 local.set $15 - loop $while-continue|022 - local.get $2 + loop $while-continue|021 + local.get $0 local.get $4 i32.lt_s if i32.const 1 local.get $15 - local.get $2 + local.get $0 i32.const 3 i32.shl i32.add @@ -12999,11 +13206,11 @@ end br_if $__inlined_func$~lib/array/Array#includes drop - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 - br $while-continue|022 + local.set $0 + br $while-continue|021 end end i32.const 0 @@ -13072,9 +13279,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 call $~lib/rt/pure/__release - local.get $1 + local.get $3 call $~lib/rt/pure/__release i32.const 5 i32.const 2 @@ -14296,9 +14503,11 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 7 call $~lib/array/Array#every @@ -14399,9 +14608,11 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 12 call $~lib/array/Array#some @@ -14500,9 +14711,11 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push + drop i32.const 0 global.set $std/array/i global.get $std/array/arr @@ -14606,9 +14819,11 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 21 call $~lib/array/Array#forEach @@ -14642,15 +14857,19 @@ global.get $std/array/arr i32.const 0 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 1 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push + drop i32.const 0 local.set $0 global.get $std/array/arr @@ -14665,7 +14884,7 @@ local.tee $1 i32.load offset=4 local.set $4 - loop $for-loop|040 + loop $for-loop|039 local.get $0 local.get $3 local.get $2 @@ -14698,7 +14917,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|040 + br $for-loop|039 end end local.get $1 @@ -14819,9 +15038,11 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push + drop local.get $1 call $~lib/rt/pure/__release global.get $std/array/arr @@ -14929,9 +15150,11 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push + drop local.get $0 call $~lib/rt/pure/__release global.get $std/array/arr @@ -15081,9 +15304,11 @@ global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 37 i32.const 0 @@ -15229,15 +15454,19 @@ global.get $std/array/arr i32.const 0 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 1 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 2 call $~lib/array/Array#push + drop global.get $std/array/arr i32.const 3 call $~lib/array/Array#push + drop call $~lib/bindings/Math/random i64.reinterpret_f64 call $~lib/math/NativeMath.seedRandom @@ -15455,8 +15684,8 @@ i32.const 0 global.set $~argumentsLength local.get $4 - i32.const 47 - call $~lib/array/Array#sort + i32.const 0 + call $~lib/array/Array#sort@varargs call $~lib/rt/pure/__release local.get $4 i32.const 5 @@ -15825,56 +16054,11 @@ end i32.const 0 local.set $0 - i32.const 16 - i32.const 16 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.tee $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 - i32.const 1600 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $2 i32.const 0 - i32.const 1600 - call $~lib/memory/memory.fill - local.get $2 - local.set $3 - local.get $2 - local.get $1 - i32.load - local.tee $4 - i32.ne - if - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $4 - call $~lib/rt/pure/__release - end - local.get $1 - local.get $3 - i32.store - local.get $1 - local.get $2 - i32.store offset=4 - local.get $1 - i32.const 1600 - i32.store offset=8 - local.get $1 i32.const 400 - i32.store offset=12 - loop $for-loop|09 + call $~lib/array/Array<~lib/string/String>#constructor + local.set $1 + loop $for-loop|06 local.get $0 i32.const 400 i32.lt_s @@ -15961,7 +16145,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|09 + br $for-loop|06 end end i32.const 1 @@ -16874,15 +17058,16 @@ local.get $4 call $~lib/rt/pure/__release ) - (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) + (local $5 i32) local.get $0 i32.eqz if i32.const 16 - i32.const 6 + i32.const 7 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.set $0 @@ -16900,7 +17085,7 @@ i32.const 0 i32.store offset=12 local.get $1 - i32.const 1073741808 + i32.const 268435452 i32.gt_u if i32.const 1040 @@ -16911,11 +17096,14 @@ unreachable end local.get $1 + i32.const 2 + i32.shl + local.tee $5 i32.const 0 call $~lib/rt/tlsf/__alloc local.tee $3 i32.const 0 - local.get $1 + local.get $5 call $~lib/memory/memory.fill local.get $3 local.set $2 @@ -16938,196 +17126,26 @@ local.get $3 i32.store offset=4 local.get $0 - local.get $1 + local.get $5 i32.store offset=8 local.get $0 local.get $1 i32.store offset=12 local.get $0 ) - (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 i32.load offset=12 drop local.get $0 local.get $1 - i32.const 0 + i32.const 2 call $~lib/array/ensureSize local.get $0 local.get $1 i32.store offset=12 ) - (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.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 $4 - local.get $3 - i32.lt_s - select - i32.lt_s - if - local.get $0 - i32.load offset=4 - local.get $2 - i32.add - i32.load8_u - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - 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 $~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 $4 - local.get $3 - i32.lt_s - select - i32.lt_s - if - local.get $0 - i32.load offset=4 - local.get $2 - i32.add - i32.load8_u - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - 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 $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - local.get $0 - i32.load offset=12 - local.tee $3 - if (result i32) - local.get $2 - local.get $3 - i32.ge_s - else - i32.const 1 - end - 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 - 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 $0 - i32.load offset=4 - local.get $3 - i32.add - local.get $1 - i32.store8 - local.get $0 - local.get $2 - i32.store offset=12 - local.get $2 - ) - (func $~lib/array/Array#concat (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) @@ -17146,7 +17164,7 @@ local.tee $4 i32.add local.tee $2 - i32.const 1073741808 + i32.const 268435452 i32.gt_u if i32.const 1040 @@ -17157,8 +17175,8 @@ unreachable end local.get $2 - i32.const 0 - i32.const 6 + i32.const 2 + i32.const 7 i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain @@ -17168,39 +17186,91 @@ 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 $3 + 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 local.get $1 call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/array/Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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.get $3 + i32.const 0 + i32.const 2 + i32.const 7 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $4 local.get $0 i32.load offset=12 - local.tee $4 - local.get $3 + 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 $5 + local.get $3 + i32.lt_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 + i32.const 3 + global.set $~argumentsLength + local.get $3 + local.get $2 + local.get $0 + local.get $1 + 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 local.get $4 - i32.lt_s - select - local.set $3 + ) + (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) local.get $0 - i32.load offset=4 - local.tee $5 + i32.load offset=12 + local.set $3 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -17210,21 +17280,19 @@ select else local.get $1 - local.get $4 + local.get $3 local.get $1 - local.get $4 + local.get $3 i32.lt_s select end - local.tee $1 - i32.add - local.get $5 + local.set $1 local.get $2 i32.const 0 i32.lt_s if (result i32) local.get $2 - local.get $4 + local.get $3 i32.add local.tee $2 i32.const 0 @@ -17234,79 +17302,222 @@ select else local.get $2 - local.get $4 + local.get $3 local.get $2 - local.get $4 + local.get $3 i32.lt_s select end + local.get $1 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select local.tee $2 + i32.const 2 + i32.const 7 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $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 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.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 - local.get $4 i32.add - local.tee $3 + local.tee $1 i32.const 0 - local.get $3 + local.get $1 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.get $2 - i32.sub - local.tee $2 - local.get $4 - local.get $1 - i32.sub local.tee $1 + i32.sub + local.tee $4 local.get $2 - local.get $1 + 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 7 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $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 - call $~lib/rt/pure/__retain + local.get $3 + local.get $2 + i32.sub + i32.store offset=12 + local.get $4 ) - (func $~lib/array/Array#pop (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/array/Array#flat (param $0 i32) (result i32) + i32.const 10048 + i32.const 1088 + i32.const 504 + i32.const 7 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array#constructor (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.tee $1 - i32.const 1 - i32.lt_s + i32.eqz if - i32.const 1984 + i32.const 16 + i32.const 6 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + i32.const 0 + i32.store + 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 1073741808 + i32.gt_u + if + i32.const 1040 i32.const 1088 - i32.const 300 - i32.const 21 + i32.const 57 + i32.const 60 call $~lib/builtins/abort unreachable end local.get $1 - i32.const 1 - i32.sub - local.tee $1 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.tee $3 + i32.const 0 + local.get $1 + call $~lib/memory/memory.fill + local.get $3 + local.set $2 + local.get $3 local.get $0 - i32.load offset=4 - i32.add - i32.load8_u + i32.load + local.tee $4 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $4 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 local.get $0 local.get $1 i32.store offset=12 + local.get $0 ) - (func $~lib/array/Array#forEach (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=12 + drop + local.get $0 + local.get $1 + i32.const 0 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17335,7 +17546,12 @@ local.get $2 local.get $0 local.get $1 - call_indirect (type $i32_i32_i32_=>_none) + call_indirect (type $i32_i32_i32_=>_i32) + i32.eqz + if + i32.const 0 + return + end local.get $2 i32.const 1 i32.add @@ -17343,29 +17559,22 @@ br $for-loop|0 end end + i32.const 1 ) - (func $~lib/array/Array#filter (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) - i32.const 0 - i32.const 0 - i32.const 6 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $4 local.get $0 i32.load offset=12 - local.set $5 + local.set $4 loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 local.get $0 i32.load offset=12 local.tee $3 - local.get $5 + local.get $4 local.get $3 i32.lt_s select @@ -17376,19 +17585,15 @@ local.get $2 i32.add i32.load8_u - local.set $3 i32.const 3 global.set $~argumentsLength - local.get $3 local.get $2 local.get $0 local.get $1 call_indirect (type $i32_i32_i32_=>_i32) if - local.get $4 - local.get $3 - call $~lib/array/Array#push - drop + local.get $2 + return end local.get $2 i32.const 1 @@ -17397,96 +17602,75 @@ br $for-loop|0 end end - local.get $4 + i32.const -1 ) - (func $~lib/array/Array#shift (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.get $0 i32.load offset=12 - local.tee $1 - i32.const 1 + local.tee $3 + if (result i32) + local.get $2 + local.get $3 + i32.ge_s + else + i32.const 1 + end + if + i32.const -1 + return + end + local.get $2 + i32.const 0 i32.lt_s if - i32.const 1984 - i32.const 1088 - i32.const 361 - i32.const 21 - call $~lib/builtins/abort - unreachable + 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.tee $2 - i32.load8_u - local.get $2 - local.get $2 - i32.const 1 - i32.add - local.get $1 - i32.const 1 - i32.sub - local.tee $1 - call $~lib/memory/memory.copy - local.get $1 - local.get $2 - i32.add - i32.const 0 - i32.store8 - local.get $0 - local.get $1 - i32.store offset=12 - ) - (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 - local.set $4 - loop $for-loop|0 + local.set $0 + loop $while-continue|0 local.get $2 - local.get $4 - local.get $0 - i32.load offset=12 - local.tee $3 - local.get $4 local.get $3 i32.lt_s - select - i32.lt_s if local.get $0 - i32.load offset=4 local.get $2 i32.add i32.load8_u - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 local.get $1 - call_indirect (type $i32_i32_i32_=>_i32) + i32.const 255 + i32.and + i32.eq if - i32.const 1 + 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 0 + i32.const -1 ) - (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) (result i32) + (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 @@ -17494,15 +17678,8 @@ call $~lib/array/ensureSize local.get $0 i32.load offset=4 - local.tee $3 - i32.const 1 - i32.add - local.get $3 - local.get $2 - i32.const 1 - i32.sub - call $~lib/memory/memory.copy local.get $3 + i32.add local.get $1 i32.store8 local.get $0 @@ -17510,17 +17687,80 @@ i32.store offset=12 local.get $2 ) - (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 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.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + 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 1073741808 + i32.gt_u + if + i32.const 1040 + i32.const 1088 + i32.const 229 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=4 + local.tee $5 + local.get $0 + i32.load offset=4 + local.get $3 + call $~lib/memory/memory.copy + local.get $3 + local.get $5 + i32.add + local.get $1 + i32.load offset=4 + local.get $4 + call $~lib/memory/memory.copy + local.get $1 + call $~lib/rt/pure/__release + 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 $3 + local.get $4 i32.add local.tee $1 i32.const 0 @@ -17530,19 +17770,21 @@ 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 + 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 $3 + local.get $4 i32.add local.tee $2 i32.const 0 @@ -17552,553 +17794,1784 @@ 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 $2 - i32.const 0 - i32.const 6 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $3 - i32.load offset=4 - local.get $0 - i32.load offset=4 - local.get $1 i32.add - local.get $2 - call $~lib/memory/memory.copy 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.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 + local.get $4 i32.add - local.tee $1 + local.tee $3 i32.const 0 - local.get $1 + local.get $3 i32.const 0 i32.gt_s select else - local.get $1 local.get $3 - local.get $1 + local.get $4 local.get $3 + local.get $4 i32.lt_s select end - local.tee $1 - i32.sub - local.tee $4 local.get $2 - local.get $4 - i32.lt_s - select + i32.sub local.tee $2 - i32.const 0 + local.get $4 + local.get $1 + i32.sub + local.tee $1 local.get $2 - i32.const 0 - i32.gt_s + local.get $1 + i32.lt_s select - local.tee $2 - i32.const 0 - i32.const 6 - i32.const 0 - call $~lib/rt/__allocArray + call $~lib/memory/memory.copy + local.get $0 call $~lib/rt/pure/__retain - local.tee $4 - i32.load offset=4 + ) + (func $~lib/array/Array#pop (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.load offset=4 - local.tee $5 + i32.load offset=12 + local.tee $1 + i32.const 1 + i32.lt_s + if + i32.const 1984 + i32.const 1088 + i32.const 300 + i32.const 21 + call $~lib/builtins/abort + unreachable + end local.get $1 + i32.const 1 + i32.sub + local.tee $1 + local.get $0 + i32.load offset=4 i32.add - local.tee $6 - local.get $2 - call $~lib/memory/memory.copy - local.get $3 + i32.load8_u + local.get $0 local.get $1 - local.get $2 - i32.add - local.tee $1 - i32.ne - if - local.get $6 - local.get $1 - local.get $5 - i32.add - local.get $3 - local.get $1 - i32.sub - call $~lib/memory/memory.copy - end - local.get $0 - local.get $3 - local.get $2 - i32.sub i32.store offset=12 - local.get $4 ) - (func $~lib/array/Array#reverse (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/array/Array#forEach (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) local.get $0 i32.load offset=12 - local.tee $1 - if - local.get $0 - i32.load offset=4 - local.set $2 + local.set $4 + loop $for-loop|0 + local.get $2 + local.get $4 local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.sub - i32.add - local.set $1 - loop $while-continue|0 + i32.load offset=12 + local.tee $3 + local.get $4 + local.get $3 + i32.lt_s + select + i32.lt_s + if + local.get $0 + i32.load offset=4 + local.get $2 + i32.add + i32.load8_u + i32.const 3 + global.set $~argumentsLength local.get $2 + local.get $0 local.get $1 - i32.lt_u - if - local.get $2 - i32.load8_u - local.set $3 - local.get $2 - local.get $1 - i32.load8_u - i32.store8 - local.get $1 - local.get $3 - i32.store8 - local.get $2 - i32.const 1 - i32.add - local.set $2 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $while-continue|0 - end + call_indirect (type $i32_i32_i32_=>_none) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $0 - call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 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) - (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 i32.const 0 - 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 + i32.const 6 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain local.set $4 + local.get $0 + i32.load offset=12 + local.set $5 loop $for-loop|0 - local.get $4 - i32.const 0 - i32.gt_s + local.get $2 + local.get $5 + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $5 + local.get $3 + i32.lt_s + select + i32.lt_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.const 31 - i32.and - 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.load offset=4 + local.get $2 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 + i32.const 3 global.set $~argumentsLength local.get $3 - local.get $6 local.get $2 - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s + local.get $0 + local.get $1 + call_indirect (type $i32_i32_i32_=>_i32) 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.const 31 - i32.and - 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 + call $~lib/array/Array#push + drop end - local.get $4 + local.get $2 i32.const 1 - i32.sub - local.set $4 + i32.add + local.set $2 br $for-loop|0 end end + local.get $4 + ) + (func $~lib/array/Array#shift (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 1 + i32.lt_s + if + i32.const 1984 + i32.const 1088 + i32.const 361 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.tee $2 + i32.load8_u + local.get $2 + local.get $2 + i32.const 1 + i32.add local.get $1 i32.const 1 i32.sub + local.tee $1 + call $~lib/memory/memory.copy + local.get $1 + local.get $2 + i32.add + i32.const 0 + i32.store8 + local.get $0 + local.get $1 + i32.store offset=12 + ) + (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 local.set $4 - loop $for-loop|2 - local.get $4 - i32.const 2 - i32.ge_s + loop $for-loop|0 + local.get $2 + local.get $4 + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $4 + local.get $3 + i32.lt_s + select + i32.lt_s if local.get $0 - i32.load8_u - local.set $1 - local.get $0 - local.get $0 - local.get $4 + i32.load offset=4 + local.get $2 i32.add - local.tee $3 i32.load8_u - i32.store8 - local.get $3 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 local.get $1 - i32.store8 - i32.const 1 - local.set $1 - loop $while-continue|3 - 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.const 31 - i32.and - i32.shr_u - i32.const 1 - i32.and - local.get $1 + call_indirect (type $i32_i32_i32_=>_i32) + if i32.const 1 - i32.shl - i32.add - local.tee $3 - local.get $4 - i32.lt_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 - 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.const 31 - i32.and - 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 + return end - local.get $4 + local.get $2 i32.const 1 - i32.sub - local.set $4 - br $for-loop|2 + i32.add + local.set $2 + br $for-loop|0 end end - call $~lib/rt/tlsf/maybeInitialize - local.get $5 - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - 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 + i32.const 0 ) - (func $~lib/array/Array#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) - (local $8 i32) + local.get $0 local.get $0 i32.load offset=12 - local.tee $2 i32.const 1 - i32.le_s - if - local.get $0 - call $~lib/rt/pure/__retain - return - end + i32.add + local.tee $2 + i32.const 0 + call $~lib/array/ensureSize local.get $0 i32.load offset=4 - local.set $5 + local.tee $3 + i32.const 1 + i32.add + local.get $3 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 + i32.const 1 + i32.sub + call $~lib/memory/memory.copy + local.get $3 + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.store offset=12 + local.get $2 + ) + (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + 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 - call_indirect (type $i32_i32_=>_i32) i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 i32.lt_s - if - local.get $5 - local.get $3 - i32.store8 offset=1 - local.get $5 - local.get $2 - i32.store8 - end - local.get $0 - call $~lib/rt/pure/__retain - return + select end + local.set $1 local.get $2 - i32.const 256 + i32.const 0 i32.lt_s - if + if (result i32) local.get $2 - local.set $3 - local.get $1 - local.set $4 - loop $for-loop|0 - local.get $6 - local.get $3 - i32.lt_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 - 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 $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.get $1 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $3 + i32.load offset=4 + local.get $0 + i32.load offset=4 + local.get $1 + i32.add + local.get $2 + call $~lib/memory/memory.copy + 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.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 + 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 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + i32.load offset=4 + local.get $0 + i32.load offset=4 + local.tee $5 + local.get $1 + i32.add + local.tee $6 + local.get $2 + 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 $1 + local.get $5 + i32.add + local.get $3 + local.get $1 + i32.sub + call $~lib/memory/memory.copy + end + local.get $0 + local.get $3 + local.get $2 + i32.sub + i32.store offset=12 + local.get $4 + ) + (func $~lib/array/Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.tee $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.add + local.set $1 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.lt_u + if + local.get $2 + i32.load8_u + local.set $3 + local.get $2 + local.get $1 + i32.load8_u + i32.store8 + local.get $1 + local.get $3 + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|0 + end + end + end + local.get $0 + call $~lib/rt/pure/__retain + ) + (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 + i32.const 0 + 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.const 31 + i32.and + 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 + 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.const 31 + i32.and + 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 $5 + local.get $1 + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + local.get $1 + i32.const 1 + i32.shl + i32.add + local.tee $3 + local.get $4 + i32.lt_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 + 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.const 31 + i32.and + 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 + call $~lib/rt/tlsf/maybeInitialize + local.get $5 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + 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#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 + i32.load offset=12 + local.tee $2 + i32.const 1 + i32.le_s + if + local.get $0 + call $~lib/rt/pure/__retain + 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.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 + 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 + local.get $0 + call $~lib/rt/pure/__retain + 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 $6 + local.get $3 + i32.lt_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 + 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 + local.get $5 + local.get $2 + local.get $1 + call $~lib/util/sort/weakHeapSort + end + local.get $0 + call $~lib/rt/pure/__retain + ) + (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.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=12 + 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 $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $1 + local.get $2 + local.get $1 + i32.lt_s + select + end + local.set $2 + 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 $3 + local.get $1 + i32.lt_s + select + end + local.set $1 + loop $for-loop|0 + local.get $2 + local.get $1 + i32.lt_s + if + local.get $4 + local.get $5 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $3 + i32.ne + if + local.get $5 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $4 + call $~lib/rt/pure/__retain + i32.store + local.get $3 + call $~lib/rt/pure/__release + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $0 + call $~lib/rt/pure/__retain + local.get $4 + call $~lib/rt/pure/__release + ) + (func $~lib/array/Array<~lib/string/String>#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=12 + local.tee $3 + if (result i32) + local.get $2 + local.get $3 + i32.ge_s + else + i32.const 1 + end + if + local.get $1 + call $~lib/rt/pure/__release + 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 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + call $~lib/string/String.__eq + if + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $1 + call $~lib/rt/pure/__release + i32.const -1 + ) + (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + call $~lib/rt/pure/__retain + i32.store + local.get $0 + local.get $2 + i32.store offset=12 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/array/Array<~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.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $1 + i32.load offset=12 + i32.const 0 + local.get $1 + select + local.tee $6 + i32.add + local.tee $2 + i32.const 268435452 + i32.gt_u + if + i32.const 1040 + i32.const 1088 + i32.const 229 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + i32.const 16 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + i32.load offset=4 + local.set $2 + local.get $4 + i32.const 2 + i32.shl + local.set $4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_u + if + local.get $2 + local.get $3 + i32.add + local.get $0 + local.get $3 + i32.add + i32.load + call $~lib/rt/pure/__retain + i32.store + local.get $3 + i32.const 4 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + local.get $4 + i32.add + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $6 + i32.const 2 + i32.shl + local.set $2 + loop $for-loop|1 + local.get $5 + local.get $2 + i32.lt_u + if + local.get $0 + local.get $5 + i32.add + local.get $3 + local.get $5 + i32.add + i32.load + call $~lib/rt/pure/__retain + i32.store + local.get $5 + i32.const 4 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + call $~lib/rt/pure/__release + local.get $7 + ) + (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.get $0 + i32.load offset=4 + local.set $5 + 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 $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 + 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 + 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 $3 + local.get $4 + local.get $1 + i32.sub + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + local.tee $3 + i32.add + i32.lt_s + i32.const 0 + local.get $2 + local.get $1 + i32.lt_s + select + if + local.get $2 + local.get $3 + i32.const 1 + i32.sub + local.tee $4 + i32.add + local.set $2 + local.get $1 + local.get $4 + i32.add + local.set $1 + loop $while-continue|0 + local.get $3 + if + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + local.get $5 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.ne + if + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $6 + call $~lib/rt/pure/__retain + i32.store + local.get $4 + call $~lib/rt/pure/__release + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|0 + end + end + else + loop $while-continue|1 + local.get $3 + if + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + local.get $5 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.ne + if + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $6 + call $~lib/rt/pure/__retain + i32.store + local.get $4 + call $~lib/rt/pure/__release + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end + end + local.get $0 + call $~lib/rt/pure/__retain + ) + (func $~lib/array/Array<~lib/string/String>#pop (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 1 + i32.lt_s + if + i32.const 1984 + i32.const 1088 + i32.const 300 + 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 + call $~lib/rt/pure/__retain + local.get $0 + local.get $1 + i32.store offset=12 + ) + (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) + i32.const 0 + i32.const 2 + i32.const 16 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $4 + 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 $2 + local.get $5 + local.get $2 + i32.lt_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 + call $~lib/rt/pure/__retain + local.set $2 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $3 + local.get $0 + local.get $1 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $4 + local.get $2 + call $~lib/array/Array<~lib/string/String>#push + drop + end + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $4 + ) + (func $~lib/array/Array<~lib/string/String>#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.tee $1 + i32.const 1 + i32.lt_s + if + i32.const 1984 + i32.const 1088 + i32.const 361 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.tee $2 + i32.load + call $~lib/rt/pure/__retain + local.get $2 + local.get $2 + i32.const 4 + i32.add + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 2 + i32.shl + local.tee $4 + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array<~lib/string/String>#unshift (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + local.tee $1 + i32.const 2 + call $~lib/array/ensureSize + local.get $0 + i32.load offset=4 + local.tee $3 + i32.const 4 + i32.add + local.get $3 + local.get $1 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $2 + call $~lib/rt/pure/__retain + i32.store + local.get $0 + local.get $1 + i32.store offset=12 + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + ) + (func $~lib/array/Array<~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.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 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.get $1 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + i32.const 2 + i32.const 16 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $3 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $0 + local.get $2 + i32.const 2 + i32.shl + local.set $1 + loop $while-continue|0 + local.get $4 + local.get $1 + i32.lt_u + if + local.get $4 + local.get $5 + i32.add + local.get $0 + local.get $4 + i32.add + i32.load + call $~lib/rt/pure/__retain + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $3 + ) + (func $~lib/array/Array<~lib/string/String>#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.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 + 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 16 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $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 + local.get $3 + local.get $2 + i32.sub + i32.store offset=12 + local.get $4 + ) + (func $~lib/array/Array<~lib/string/String>#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load offset=12 + local.tee $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 $1 + loop $while-continue|0 + local.get $2 + local.get $1 + i32.lt_u + if + local.get $2 + i32.load + call $~lib/rt/pure/__retain + local.set $3 + local.get $2 local.get $1 - i32.const 1 - i32.add - i32.add - local.get $7 - i32.store8 - local.get $6 - i32.const 1 + i32.load + i32.store + local.get $1 + local.get $3 + i32.store + local.get $2 + i32.const 4 i32.add - local.set $6 - br $for-loop|0 + local.set $2 + local.get $1 + i32.const 4 + i32.sub + local.set $1 + local.get $3 + call $~lib/rt/pure/__release + br $while-continue|0 end end - else - local.get $5 - local.get $2 - local.get $1 - call $~lib/util/sort/weakHeapSort end local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#flat (param $0 i32) (result i32) - i32.const 10048 - i32.const 1088 - i32.const 499 - i32.const 7 - call $~lib/builtins/abort - unreachable - ) (func $~start global.get $~started if @@ -18147,7 +19620,7 @@ i32.const 8 i32.add i32.load - br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $folding-inner0 $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $__inlined_func$~lib/rt/__visit_members $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $switch$1$default + br_table $__inlined_func$~lib/rt/__visit_members $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $folding-inner0 $__inlined_func$~lib/rt/__visit_members $switch$1$case$4 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $__inlined_func$~lib/rt/__visit_members $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $switch$1$default end local.get $0 i32.load offset=16 @@ -18242,9 +19715,235 @@ return end local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#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 $~lib/array/Array#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 + i32.const 2147483647 + 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) + (local $3 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 + block $__inlined_func$~lib/array/Array#lastIndexOf + local.get $0 + local.tee $3 + i32.load offset=12 + local.tee $0 + i32.eqz + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#lastIndexOf + end + local.get $0 + local.get $2 + i32.add + local.get $0 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $0 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|0 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $2 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.eq + br_if $__inlined_func$~lib/array/Array#lastIndexOf + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|0 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + ) + (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 + i32.const 2147483647 + 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 + i32.const 2147483647 + 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 + i32.const 2147483647 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#splice + ) + (func $~lib/array/Array#join@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 6304 + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/array/Array#join ) (func $~lib/array/Array#constructor@varargs (param $0 i32) (param $1 i32) (result i32) block $1of1 @@ -18490,6 +20189,265 @@ local.get $1 call $~lib/array/Array#join ) + (func $~lib/array/Array<~lib/string/String>#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 $~lib/array/Array<~lib/string/String>#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 + i32.const 2147483647 + 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 + call $~lib/rt/pure/__retain + local.tee $0 + local.get $2 + call $~lib/array/Array<~lib/string/String>#indexOf + i32.const 0 + i32.ge_s + local.get $0 + call $~lib/rt/pure/__release + ) + (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) + (local $3 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 $1 + call $~lib/rt/pure/__retain + local.set $1 + block $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf + local.get $0 + local.tee $3 + i32.load offset=12 + local.tee $0 + i32.eqz + if + local.get $1 + call $~lib/rt/pure/__release + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf + end + local.get $0 + local.get $2 + i32.add + local.get $0 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $0 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 + loop $while-continue|0 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + call $~lib/string/String.__eq + if + local.get $1 + call $~lib/rt/pure/__release + br $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf + end + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|0 + end + end + local.get $1 + call $~lib/rt/pure/__release + i32.const -1 + local.set $0 + end + local.get $0 + ) + (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 + i32.const 2147483647 + 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 + i32.const 2147483647 + 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 + i32.const 2147483647 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#splice + ) + (func $~lib/array/Array<~lib/string/String>#sort@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 58 + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#sort + ) + (func $~lib/array/Array<~lib/string/String>#join@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 6304 + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String | null>#join + ) (func $~setArgumentsLength (param $0 i32) local.get $0 global.set $~argumentsLength diff --git a/tests/compiler/std/array.ts b/tests/compiler/std/array.ts index e66c064ed9..b788a6882a 100644 --- a/tests/compiler/std/array.ts +++ b/tests/compiler/std/array.ts @@ -1065,4 +1065,6 @@ __release(changetype(arr)); export class ArrayU32 extends Array {} export class ArrayU8 extends Array {} -export class ArrayArrayI32 extends Array> {} \ No newline at end of file +export class ArrayStr extends Array {} +// TODO: +// export class ArrayArrayI32 extends Array> {} \ No newline at end of file diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index e69de29bb2..d6b402c96b 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -0,0 +1,31626 @@ +(module + (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 (func (param i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 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 $i32_=>_none (func (param i32))) + (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) + (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) + (type $none_=>_none (func)) + (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $none_=>_f64 (func (result f64))) + (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) + (type $i32_f32_i32_=>_i32 (func (param i32 f32 i32) (result i32))) + (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $i32_f64_i32_=>_i32 (func (param i32 f64 i32) (result i32))) + (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) + (type $i32_i32_i32_=>_f32 (func (param i32 i32 i32) (result f32))) + (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) + (type $i64_=>_none (func (param i64))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $i64_=>_i32 (func (param i64) (result i32))) + (type $f64_=>_i32 (func (param f64) (result i32))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) + (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) + (import "rtrace" "onrealloc" (func $~lib/rt/rtrace/onrealloc (param i32 i32))) + (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) + (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) + (import "env" "seed" (func $~lib/builtins/seed (result f64))) + (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) + (memory $0 1) + (data (i32.const 16) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 64) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00") + (data (i32.const 160) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") + (data (i32.const 224) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") + (data (i32.const 272) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00s\00t\00d\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") + (data (i32.const 320) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") + (data (i32.const 384) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00a\00b\00c\00") + (data (i32.const 416) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\02\03\04\05") + (data (i32.const 448) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\01\01\04\05") + (data (i32.const 480) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") + (data (i32.const 544) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\00\00\00\00\00") + (data (i32.const 576) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\01\00\00\00") + (data (i32.const 608) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\01\00\02\02") + (data (i32.const 640) "\05\00\00\00\01\00\00\00\00\00\00\00\05\00\00\00\01\01\00\02\02") + (data (i32.const 672) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 720) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 768) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 816) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 864) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00") + (data (i32.const 912) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00") + (data (i32.const 960) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00A\00r\00r\00a\00y\00 \00i\00s\00 \00e\00m\00p\00t\00y\00") + (data (i32.const 1008) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1024) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1040) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1088) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1136) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1184) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\05\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1232) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1280) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00") + (data (i32.const 1328) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1376) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1424) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1472) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1520) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1568) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1616) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1664) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1712) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1760) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\05\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1808) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1856) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\04\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1904) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 1952) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 2000) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 2048) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 2096) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 2144) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\05\00\00\00") + (data (i32.const 2192) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\00\00\c0\7f") + (data (i32.const 2224) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\00\00\f8\7f") + (data (i32.const 2256) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\00\00\c0\7f") + (data (i32.const 2288) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\00\00\f8\7f") + (data (i32.const 2320) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 2368) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 2416) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2432) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 2480) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2496) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 2544) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 2592) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 2624) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00") + (data (i32.const 2656) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 2704) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\04\00\00\00") + (data (i32.const 2736) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\05\00\00\00") + (data (i32.const 2768) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 2816) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") + (data (i32.const 2848) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 2880) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 2928) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 2960) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00") + (data (i32.const 2992) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 3040) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 3072) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 3104) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 3152) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\04\00\00\00") + (data (i32.const 3184) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\05\00\00\00") + (data (i32.const 3216) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 3264) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") + (data (i32.const 3296) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 3328) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 3376) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3392) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 3440) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 3488) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3504) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 3552) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 3600) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3616) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 3664) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 3712) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3728) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 3776) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 3824) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3840) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data (i32.const 3888) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3904) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00") + (data (i32.const 4016) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") + (data (i32.const 4064) "\ac\00\00\00\01\00\00\00\01\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?\00") + (data (i32.const 4256) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f") + (data (i32.const 4304) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f") + (data (i32.const 4352) "@\00\00\00\01\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f") + (data (i32.const 4432) "@\00\00\00\01\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f") + (data (i32.const 4512) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02\00\00\00") + (data (i32.const 4560) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02\00\00\00") + (data (i32.const 4608) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02\00\00\00") + (data (i32.const 4656) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff") + (data (i32.const 4704) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4720) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") + (data (i32.const 4752) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\02\00\00\00\01\00\00\00") + (data (i32.const 4784) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 4816) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 4848) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") + (data (i32.const 4880) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00") + (data (i32.const 4912) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00a\00") + (data (i32.const 4944) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00b\00") + (data (i32.const 4976) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00a\00b\00") + (data (i32.const 5008) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00b\00a\00") + (data (i32.const 5040) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 5056) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00@\13\00\00`\13\00\00@\13\00\00\80\13\00\00\a0\13\00\00\c0\13\00\00\00\00\00\00") + (data (i32.const 5104) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\c0\13\00\00@\13\00\00@\13\00\00\80\13\00\00`\13\00\00\a0\13\00\00\00\00\00\00") + (data (i32.const 5152) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l\00") + (data (i32.const 5184) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\00") + (data (i32.const 5216) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00r\00u\00e\00") + (data (i32.const 5248) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e\00") + (data (i32.const 5280) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00,\00") + (data (i32.const 5312) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e\00") + (data (i32.const 5360) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") + (data (i32.const 5392) "d\00\00\00\01\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00") + (data (i32.const 5520) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00") + (data (i32.const 5584) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\000\00") + (data (i32.const 5604) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 6016) "\00\04\00\00\01\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00") + (data (i32.const 7056) "H\00\00\00\01\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00") + (data (i32.const 7152) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\001\00-\002\00-\003\00") + (data (i32.const 7184) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 7216) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00-\00") + (data (i32.const 7248) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\00\00\00\80\00\00\00\80") + (data (i32.const 7280) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00_\00_\00") + (data (i32.const 7312) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008\00") + (data (i32.const 7376) "0\00\00\00\01\00\00\00\00\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f") + (data (i32.const 7440) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00,\00 \00") + (data (i32.const 7472) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\000\00.\000\00") + (data (i32.const 7504) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00") + (data (i32.const 7536) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00") + (data (i32.const 7584) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00") + (data (i32.const 7616) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00\01\00\00\00\01\00\00\00>\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00") + (data (i32.const 8896) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8912) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") + (data (i32.const 8944) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00") + (data (i32.const 8976) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 9008) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\001\00,\002\00") + (data (i32.const 9040) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003\00") + (data (i32.const 9072) "\03\00\00\00\01\00\00\00\00\00\00\00\03\00\00\00\01\ff\00") + (data (i32.const 9104) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\00,\00-\001\00,\000\00") + (data (i32.const 9136) "\06\00\00\00\01\00\00\00\00\00\00\00\06\00\00\00\01\00\ff\ff\00\00") + (data (i32.const 9168) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000\00") + (data (i32.const 9216) "\18\00\00\00\01\00\00\00\00\00\00\00\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00") + (data (i32.const 9264) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000\00") + (data (i32.const 9328) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f") + (data (i32.const 9376) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007\00") + (data (i32.const 9488) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\c0\13\00\00@\13\00\00@\13\00\00\80\13\00\00`\13\00\00\a0\13\00\00\00\00\00\00") + (data (i32.const 9536) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,\00") + (data (i32.const 9584) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\002\00") + (data (i32.const 9616) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\004\00") + (data (i32.const 9648) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\c0!\00\00\80%\00\00\00\00\00\00\a0%\00\00") + (data (i32.const 9680) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\00,\002\00,\00,\004\00") + (data (i32.const 9712) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00") + (data (i32.const 9744) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\04\00\00\00") + (data (i32.const 9776) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004\00") + (data (i32.const 9808) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\02") + (data (i32.const 9840) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\03\04") + (data (i32.const 9872) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") + (data (i32.const 9904) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00") + (data (i32.const 9936) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 9968) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00") + (data (i32.const 10000) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00") + (data (i32.const 10032) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00o\00n\00e\00") + (data (i32.const 10064) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00@\'\00\00") + (data (i32.const 10096) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00t\00w\00o\00") + (data (i32.const 10128) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00t\00h\00r\00e\00e\00") + (data (i32.const 10160) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\80\'\00\00\00\00\00\00\a0\'\00\00") + (data (i32.const 10192) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00f\00o\00u\00r\00") + (data (i32.const 10224) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00f\00i\00v\00e\00") + (data (i32.const 10256) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00s\00i\00x\00") + (data (i32.const 10288) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\e0\'\00\00\00(\00\00 (\00\00") + (data (i32.const 10320) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00s\00e\00v\00e\00n\00") + (data (i32.const 10352) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00`(\00\00") + (data (i32.const 10384) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00@\'\00\00\80\'\00\00\00\00\00\00\a0\'\00\00\e0\'\00\00\00(\00\00 (\00\00`(\00\00") + (data (i32.const 10432) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10448) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10464) "n\00\00\00\01\00\00\00\01\00\00\00n\00\00\00C\00a\00n\00n\00o\00t\00 \00c\00a\00l\00l\00 \00f\00l\00a\00t\00(\00)\00 \00o\00n\00 \00A\00r\00r\00a\00y\00<\00T\00>\00 \00w\00h\00e\00r\00e\00 \00T\00 \00i\00s\00 \00n\00o\00t\00 \00a\00n\00 \00A\00r\00r\00a\00y\00.\00") + (table $0 57 funcref) + (elem (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|4 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|39 $start:std/array~anonymous|40 $start:std/array~anonymous|41 $start:std/array~anonymous|42 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $start:std/array~anonymous|43 $start:std/array~anonymous|44 $start:std/array~anonymous|45 $start:std/array~anonymous|46 $start:std/array~anonymous|47 $start:std/array~anonymous|48 $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) + (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) + (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $std/array/arr (mut i32) (i32.const 0)) + (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) + (global $std/array/i (mut i32) (i32.const 0)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/math/random_seeded (mut i32) (i32.const 0)) + (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) + (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 $std/array/charset i32 (i32.const 4080)) + (global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648)) + (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp (mut i32) (i32.const 0)) + (global $~lib/util/number/_K (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) + (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) + (global $~lib/builtins/i64.MAX_VALUE i64 (i64.const 9223372036854775807)) + (global $~started (mut i32) (i32.const 0)) + (global $~lib/heap/__heap_base i32 (i32.const 10592)) + (global $std/array/ArrayU32 i32 (i32.const 26)) + (global $std/array/ArrayU8 i32 (i32.const 27)) + (global $std/array/ArrayStr i32 (i32.const 28)) + (export "_start" (func $~start)) + (export "memory" (memory $0)) + (export "ArrayU32" (global $std/array/ArrayU32)) + (export "ArrayU32#constructor" (func $~lib/array/Array#constructor@varargs)) + (export "ArrayU32#get:length" (func $~lib/array/Array#get:length)) + (export "ArrayU32#set:length" (func $~lib/array/Array#set:length)) + (export "ArrayU32#every" (func $~lib/array/Array#every)) + (export "ArrayU32#findIndex" (func $~lib/array/Array#findIndex)) + (export "ArrayU32#fill" (func $~lib/array/Array#fill@varargs)) + (export "ArrayU32#includes" (func $~lib/array/Array#includes@varargs)) + (export "ArrayU32#indexOf" (func $~lib/array/Array#indexOf@varargs)) + (export "ArrayU32#lastIndexOf" (func $~lib/array/Array#lastIndexOf@varargs)) + (export "ArrayU32#push" (func $~lib/array/Array#push)) + (export "ArrayU32#concat" (func $~lib/array/Array#concat)) + (export "ArrayU32#copyWithin" (func $~lib/array/Array#copyWithin@varargs)) + (export "ArrayU32#pop" (func $~lib/array/Array#pop)) + (export "ArrayU32#forEach" (func $~lib/array/Array#forEach)) + (export "ArrayU32#filter" (func $~lib/array/Array#filter)) + (export "ArrayU32#shift" (func $~lib/array/Array#shift)) + (export "ArrayU32#some" (func $~lib/array/Array#some)) + (export "ArrayU32#unshift" (func $~lib/array/Array#unshift)) + (export "ArrayU32#slice" (func $~lib/array/Array#slice@varargs)) + (export "ArrayU32#splice" (func $~lib/array/Array#splice@varargs)) + (export "ArrayU32#reverse" (func $~lib/array/Array#reverse)) + (export "ArrayU32#sort" (func $~lib/array/Array#sort@varargs)) + (export "ArrayU32#join" (func $~lib/array/Array#join@varargs)) + (export "ArrayU32#flat" (func $~lib/array/Array#flat)) + (export "ArrayU32#toString" (func $~lib/array/Array#toString)) + (export "ArrayU8" (global $std/array/ArrayU8)) + (export "ArrayU8#constructor" (func $~lib/array/Array#constructor@varargs)) + (export "ArrayU8#get:length" (func $~lib/array/Array#get:length)) + (export "ArrayU8#set:length" (func $~lib/array/Array#set:length)) + (export "ArrayU8#every" (func $~lib/array/Array#every)) + (export "ArrayU8#findIndex" (func $~lib/array/Array#findIndex)) + (export "ArrayU8#fill" (func $~lib/array/Array#fill@varargs)) + (export "ArrayU8#includes" (func $~lib/array/Array#includes@varargs)) + (export "ArrayU8#indexOf" (func $~lib/array/Array#indexOf@varargs)) + (export "ArrayU8#lastIndexOf" (func $~lib/array/Array#lastIndexOf@varargs)) + (export "ArrayU8#push" (func $~lib/array/Array#push)) + (export "ArrayU8#concat" (func $~lib/array/Array#concat)) + (export "ArrayU8#copyWithin" (func $~lib/array/Array#copyWithin@varargs)) + (export "ArrayU8#pop" (func $~lib/array/Array#pop)) + (export "ArrayU8#forEach" (func $~lib/array/Array#forEach)) + (export "ArrayU8#filter" (func $~lib/array/Array#filter)) + (export "ArrayU8#shift" (func $~lib/array/Array#shift)) + (export "ArrayU8#some" (func $~lib/array/Array#some)) + (export "ArrayU8#unshift" (func $~lib/array/Array#unshift)) + (export "ArrayU8#slice" (func $~lib/array/Array#slice@varargs)) + (export "ArrayU8#splice" (func $~lib/array/Array#splice@varargs)) + (export "ArrayU8#reverse" (func $~lib/array/Array#reverse)) + (export "ArrayU8#sort" (func $~lib/array/Array#sort@varargs)) + (export "ArrayU8#join" (func $~lib/array/Array#join@varargs)) + (export "ArrayU8#flat" (func $~lib/array/Array#flat)) + (export "ArrayU8#toString" (func $~lib/array/Array#toString)) + (export "ArrayStr" (global $std/array/ArrayStr)) + (export "ArrayStr#constructor" (func $~lib/array/Array<~lib/string/String>#constructor@varargs)) + (export "ArrayStr#get:length" (func $~lib/array/Array<~lib/string/String>#get:length)) + (export "ArrayStr#set:length" (func $~lib/array/Array<~lib/string/String>#set:length)) + (export "ArrayStr#every" (func $~lib/array/Array<~lib/string/String>#every)) + (export "ArrayStr#findIndex" (func $~lib/array/Array<~lib/string/String>#findIndex)) + (export "ArrayStr#fill" (func $~lib/array/Array<~lib/string/String>#fill@varargs)) + (export "ArrayStr#includes" (func $~lib/array/Array<~lib/string/String>#includes@varargs)) + (export "ArrayStr#indexOf" (func $~lib/array/Array<~lib/string/String>#indexOf@varargs)) + (export "ArrayStr#lastIndexOf" (func $~lib/array/Array<~lib/string/String>#lastIndexOf@varargs)) + (export "ArrayStr#push" (func $~lib/array/Array<~lib/string/String>#push)) + (export "ArrayStr#concat" (func $~lib/array/Array<~lib/string/String>#concat)) + (export "ArrayStr#copyWithin" (func $~lib/array/Array<~lib/string/String>#copyWithin@varargs)) + (export "ArrayStr#pop" (func $~lib/array/Array<~lib/string/String>#pop)) + (export "ArrayStr#forEach" (func $~lib/array/Array<~lib/string/String>#forEach)) + (export "ArrayStr#filter" (func $~lib/array/Array<~lib/string/String>#filter)) + (export "ArrayStr#shift" (func $~lib/array/Array<~lib/string/String>#shift)) + (export "ArrayStr#some" (func $~lib/array/Array<~lib/string/String>#some)) + (export "ArrayStr#unshift" (func $~lib/array/Array<~lib/string/String>#unshift)) + (export "ArrayStr#slice" (func $~lib/array/Array<~lib/string/String>#slice@varargs)) + (export "ArrayStr#splice" (func $~lib/array/Array<~lib/string/String>#splice@varargs)) + (export "ArrayStr#reverse" (func $~lib/array/Array<~lib/string/String>#reverse)) + (export "ArrayStr#sort" (func $~lib/array/Array<~lib/string/String>#sort@varargs)) + (export "ArrayStr#join" (func $~lib/array/Array<~lib/string/String>#join@varargs)) + (export "ArrayStr#flat" (func $~lib/array/Array<~lib/string/String>#flat)) + (export "ArrayStr#toString" (func $~lib/array/Array<~lib/string/String>#toString)) + (export "__setArgumentsLength" (func $~setArgumentsLength)) + (func $~lib/rt/pure/__release (param $0 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u + if + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + end + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 277 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 16 + i32.ge_u + if (result i32) + local.get $3 + i32.const 1073741808 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 279 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $4 + local.get $3 + i32.const 4 + i32.shr_u + local.set $5 + else + i32.const 31 + local.get $3 + i32.clz + i32.sub + local.set $4 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $5 + local.get $4 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $4 + end + i32.const 1 + drop + local.get $4 + i32.const 23 + i32.lt_u + if (result i32) + local.get $5 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 292 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=16 + local.set $6 + local.get $1 + i32.load offset=20 + local.set $7 + local.get $6 + if + local.get $6 + local.get $7 + i32.store offset=20 + end + local.get $7 + if + local.get $7 + local.get $6 + i32.store offset=16 + end + local.get $1 + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if + local.get $0 + local.set $11 + local.get $4 + local.set $10 + local.get $5 + local.set $9 + local.get $7 + local.set $8 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=96 + local.get $7 + i32.eqz + if + local.get $0 + local.set $9 + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $9 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $4 + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + i32.const 1 + drop + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 205 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.set $2 + i32.const 1 + drop + local.get $2 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 207 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + local.get $5 + i32.const 1 + i32.and + if + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.add + local.get $5 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $3 + local.get $3 + i32.const 1073741808 + i32.lt_u + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $2 + i32.const 3 + i32.and + local.get $3 + i32.or + local.tee $2 + i32.store + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $4 + local.get $4 + i32.load + local.set $5 + end + end + local.get $2 + i32.const 2 + i32.and + if + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load + local.set $6 + local.get $6 + i32.load + local.set $3 + i32.const 1 + drop + local.get $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 228 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.add + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $7 + local.get $7 + i32.const 1073741808 + i32.lt_u + if + local.get $0 + local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $6 + local.get $3 + i32.const 3 + i32.and + local.get $7 + i32.or + local.tee $2 + i32.store + local.get $6 + local.set $1 + end + end + local.get $4 + local.get $5 + i32.const 2 + i32.or + i32.store + local.get $2 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.set $8 + i32.const 1 + drop + local.get $8 + i32.const 16 + i32.ge_u + if (result i32) + local.get $8 + i32.const 1073741808 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 243 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $1 + i32.const 16 + i32.add + local.get $8 + i32.add + local.get $4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 244 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub + local.get $1 + i32.store + local.get $8 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $9 + local.get $8 + i32.const 4 + i32.shr_u + local.set $10 + else + i32.const 31 + local.get $8 + i32.clz + i32.sub + local.set $9 + local.get $8 + local.get $9 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $10 + local.get $9 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $9 + end + i32.const 1 + drop + local.get $9 + i32.const 23 + i32.lt_u + if (result i32) + local.get $10 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 260 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $11 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + local.get $11 + i32.store offset=20 + local.get $11 + if + local.get $11 + local.get $1 + i32.store offset=16 + end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $9 + i32.shl + i32.or + i32.store + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (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) + i32.const 1 + drop + local.get $1 + local.get $2 + i32.le_u + if (result i32) + local.get $1 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $2 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 386 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + local.set $4 + i32.const 0 + local.set $5 + local.get $4 + if + i32.const 1 + drop + local.get $1 + local.get $4 + i32.const 16 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 396 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.get $4 + i32.eq + if + local.get $1 + i32.const 16 + i32.sub + local.set $1 + local.get $4 + i32.load + local.set $5 + else + nop + end + else + i32.const 1 + drop + local.get $1 + local.get $0 + i32.const 1572 + i32.add + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 408 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + local.get $1 + i32.sub + local.set $6 + local.get $6 + i32.const 16 + i32.const 16 + i32.add + i32.const 16 + i32.add + i32.lt_u + if + i32.const 0 + return + end + local.get $6 + i32.const 16 + i32.const 1 + i32.shl + i32.sub + local.set $7 + local.get $1 + local.set $8 + local.get $8 + local.get $7 + i32.const 1 + i32.or + local.get $5 + i32.const 2 + i32.and + i32.or + i32.store + local.get $8 + i32.const 0 + i32.store offset=16 + local.get $8 + i32.const 0 + i32.store offset=20 + local.get $1 + local.get $6 + i32.add + i32.const 16 + i32.sub + local.set $4 + local.get $4 + i32.const 0 + i32.const 2 + i32.or + i32.store + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $8 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + ) + (func $~lib/rt/tlsf/maybeInitialize (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) + global.get $~lib/rt/tlsf/ROOT + local.set $0 + local.get $0 + i32.eqz + if + global.get $~lib/heap/__heap_base + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $1 + memory.size + local.set $2 + local.get $1 + i32.const 1572 + i32.add + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $3 + local.get $2 + i32.gt_s + if (result i32) + local.get $3 + local.get $2 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + local.get $1 + local.set $0 + local.get $0 + i32.const 0 + i32.store + local.get $0 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 + i32.const 0 + local.set $5 + loop $for-loop|0 + local.get $5 + i32.const 23 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $0 + local.set $8 + local.get $5 + local.set $7 + i32.const 0 + local.set $6 + local.get $8 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $8 + loop $for-loop|1 + local.get $8 + i32.const 16 + i32.lt_u + local.set $7 + local.get $7 + if + local.get $0 + local.set $11 + local.get $5 + local.set $10 + local.get $8 + local.set $9 + i32.const 0 + local.set $6 + local.get $11 + local.get $10 + i32.const 4 + i32.shl + local.get $9 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|1 + end + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $1 + i32.const 1572 + i32.add + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.set $5 + i32.const 0 + drop + local.get $0 + local.get $5 + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $0 + global.set $~lib/rt/tlsf/ROOT + end + local.get $0 + ) + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.const 1073741808 + i32.ge_u + if + i32.const 176 + i32.const 128 + i32.const 461 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 15 + i32.add + i32.const 15 + i32.const -1 + i32.xor + i32.and + local.tee $1 + i32.const 16 + local.tee $2 + local.get $1 + local.get $2 + i32.gt_u + select + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + i32.const 0 + local.set $2 + local.get $1 + i32.const 4 + i32.shr_u + local.set $3 + else + local.get $1 + i32.const 536870904 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $1 + end + local.set $4 + i32.const 31 + local.get $4 + i32.clz + i32.sub + local.set $2 + local.get $4 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 1 + i32.const 4 + i32.shl + i32.xor + local.set $3 + local.get $2 + i32.const 8 + i32.const 1 + i32.sub + i32.sub + local.set $2 + end + i32.const 1 + drop + local.get $2 + i32.const 23 + i32.lt_u + if (result i32) + local.get $3 + i32.const 16 + i32.lt_u + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 338 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 0 + i32.const -1 + i32.xor + local.get $3 + i32.shl + i32.and + local.set $6 + i32.const 0 + local.set $7 + local.get $6 + i32.eqz + if + local.get $0 + i32.load + i32.const 0 + i32.const -1 + i32.xor + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.set $5 + local.get $5 + i32.eqz + if + i32.const 0 + local.set $7 + else + local.get $5 + i32.ctz + local.set $2 + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $6 + i32.const 1 + drop + local.get $6 + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 351 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $7 + end + local.get $7 + ) + (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 0 + drop + local.get $1 + i32.const 536870904 + i32.lt_u + if + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.set $1 + end + memory.size + local.set $2 + local.get $1 + i32.const 16 + local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.sub + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 + i32.ne + i32.shl + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.add + i32.const 65535 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.shr_u + local.set $4 + local.get $2 + local.tee $3 + local.get $4 + local.tee $5 + local.get $3 + local.get $5 + i32.gt_s + select + local.set $6 + local.get $6 + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $7 + local.get $0 + local.get $2 + i32.const 16 + i32.shl + local.get $7 + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.set $3 + i32.const 1 + drop + local.get $2 + i32.const 15 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 365 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.sub + local.set $4 + local.get $4 + i32.const 16 + i32.const 16 + i32.add + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.get $2 + i32.add + local.set $5 + local.get $5 + local.get $4 + i32.const 16 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const 1 + i32.const -1 + i32.xor + i32.and + i32.store + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + i32.load + i32.const 2 + i32.const -1 + i32.xor + i32.and + i32.store + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + i32.const 1 + drop + global.get $~lib/rt/tlsf/collectLock + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 500 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.set $3 + local.get $0 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 + i32.eqz + if + global.get $~lib/gc/gc.auto + if + i32.const 1 + drop + i32.const 1 + global.set $~lib/rt/tlsf/collectLock + call $~lib/rt/pure/__collect + i32.const 1 + drop + i32.const 0 + global.set $~lib/rt/tlsf/collectLock + local.get $0 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + local.get $4 + i32.eqz + if + local.get $0 + local.get $3 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + i32.const 1 + drop + local.get $4 + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 512 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + end + else + local.get $0 + local.get $3 + call $~lib/rt/tlsf/growMemory + local.get $0 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.set $4 + i32.const 1 + drop + local.get $4 + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 517 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + end + end + i32.const 1 + drop + local.get $4 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + local.get $3 + i32.ge_u + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 520 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 0 + i32.store offset=4 + local.get $4 + local.get $2 + i32.store offset=8 + local.get $4 + local.get $1 + i32.store offset=12 + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $4 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + i32.const 1 + drop + local.get $4 + call $~lib/rt/rtrace/onalloc + local.get $4 + ) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize + local.get $0 + local.get $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + ) + (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + block $~lib/util/memory/memset|inlined.0 + local.get $0 + local.set $5 + local.get $1 + local.set $4 + local.get $2 + local.set $3 + i32.const 0 + i32.const 1 + i32.gt_s + drop + local.get $3 + i32.eqz + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $3 + i32.add + i32.const 4 + i32.sub + local.set $6 + local.get $5 + local.get $4 + i32.store8 + local.get $6 + local.get $4 + i32.store8 offset=3 + local.get $3 + i32.const 2 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=1 + local.get $5 + local.get $4 + i32.store8 offset=2 + local.get $6 + local.get $4 + i32.store8 offset=2 + local.get $6 + local.get $4 + i32.store8 offset=1 + local.get $3 + i32.const 6 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $4 + i32.store8 offset=3 + local.get $6 + local.get $4 + i32.store8 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + i32.const 0 + local.get $5 + i32.sub + i32.const 3 + i32.and + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $3 + i32.const -4 + i32.and + local.set $3 + i32.const -1 + i32.const 255 + i32.div_u + local.get $4 + i32.const 255 + i32.and + i32.mul + local.set $8 + local.get $5 + local.get $3 + i32.add + i32.const 28 + i32.sub + local.set $6 + local.get $5 + local.get $8 + i32.store + local.get $6 + local.get $8 + i32.store offset=24 + local.get $3 + i32.const 8 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=4 + local.get $5 + local.get $8 + i32.store offset=8 + local.get $6 + local.get $8 + i32.store offset=16 + local.get $6 + local.get $8 + i32.store offset=20 + local.get $3 + i32.const 24 + i32.le_u + if + br $~lib/util/memory/memset|inlined.0 + end + local.get $5 + local.get $8 + i32.store offset=12 + local.get $5 + local.get $8 + i32.store offset=16 + local.get $5 + local.get $8 + i32.store offset=20 + local.get $5 + local.get $8 + i32.store offset=24 + local.get $6 + local.get $8 + i32.store + local.get $6 + local.get $8 + i32.store offset=4 + local.get $6 + local.get $8 + i32.store offset=8 + local.get $6 + local.get $8 + i32.store offset=12 + i32.const 24 + local.get $5 + i32.const 4 + i32.and + i32.add + local.set $7 + local.get $5 + local.get $7 + i32.add + local.set $5 + local.get $3 + local.get $7 + i32.sub + local.set $3 + local.get $8 + i64.extend_i32_u + local.get $8 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $9 + loop $while-continue|0 + local.get $3 + i32.const 32 + i32.ge_u + local.set $10 + local.get $10 + if + local.get $5 + local.get $9 + i64.store + local.get $5 + local.get $9 + i64.store offset=8 + local.get $5 + local.get $9 + i64.store offset=16 + local.get $5 + local.get $9 + i64.store offset=24 + local.get $3 + i32.const 32 + i32.sub + local.set $3 + local.get $5 + i32.const 32 + i32.add + local.set $5 + br $while-continue|0 + end + end + end + ) + (func $~lib/rt/pure/increment (param $0 i32) + (local $1 i32) + local.get $0 + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $1 + i32.const 1 + i32.add + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 240 + i32.const 109 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.store offset=4 + i32.const 1 + drop + local.get $0 + call $~lib/rt/rtrace/onincrement + i32.const 1 + drop + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 240 + i32.const 112 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/pure/__retain (param $0 i32) (result i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.gt_u + if + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/increment + end + local.get $0 + ) + (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.get $0 + i32.eqz + if + i32.const 16 + i32.const 3 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + i32.const 0 + i32.store + 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 1073741808 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 57 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + local.set $2 + local.get $2 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $3 + local.get $3 + i32.const 0 + local.get $2 + call $~lib/memory/memory.fill + local.get $0 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $6 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + local.set $5 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + i32.store + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=12 + local.get $0 + ) + (func $~lib/array/Array.isArray<~lib/array/Array | null> (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 1 + if (result i32) + local.get $0 + i32.const 0 + i32.ne + else + i32.const 0 + end + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + ) + (func $std/array/Ref#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.eqz + if + i32.const 4 + i32.const 4 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + local.get $1 + i32.store + local.get $0 + ) + (func $~lib/array/Array.isArray (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 0 + if (result i32) + local.get $0 + i32.const 0 + i32.ne + else + i32.const 0 + end + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + ) + (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.get $0 + i32.eqz + if + i32.const 12 + i32.const 2 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + i32.const 0 + i32.store + 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 1073741808 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 336 + i32.const 18 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.shl + local.tee $1 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $3 + local.get $3 + i32.const 0 + local.get $1 + call $~lib/memory/memory.fill + local.get $0 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $6 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + local.set $5 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + i32.store + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + ) + (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.eqz + if + i32.const 12 + i32.const 5 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.set $0 + local.get $0 + ) + (func $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 0 + if (result i32) + local.get $0 + i32.const 0 + i32.ne + else + i32.const 0 + end + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + ) + (func $~lib/array/Array.isArray (param $0 i32) (result i32) + i32.const 0 + ) + (func $~lib/array/Array.isArray<~lib/string/String> (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 0 + if (result i32) + local.get $0 + i32.const 0 + i32.ne + else + i32.const 0 + end + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + ) + (func $~lib/array/Array.isArray<~lib/array/Array> (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 1 + if (result i32) + local.get $0 + i32.const 0 + i32.ne + else + i32.const 0 + end + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + ) + (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 + 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 + i32.const 2 + i32.and + if + local.get $0 + local.get $1 + i32.load16_u + i32.store16 + 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.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 $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 + 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 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 + 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 + 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 + 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 + 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 $2 + i32.const 19 + i32.ge_u + local.set $5 + 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 + end + br $break|2 + end + end + local.get $2 + i32.const 16 + 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 + 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 $2 + i32.const 8 + 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 + 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 $~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 $3 + i32.add + local.get $5 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $5 + local.get $3 + i32.add + local.get $4 + i32.le_u + end + 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/__allocBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $0 + local.get $1 + call $~lib/rt/tlsf/__alloc + 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 $~lib/rt/__allocArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + i32.const 16 + local.get $2 + call $~lib/rt/tlsf/__alloc + local.set $4 + local.get $0 + local.get $1 + i32.shl + local.set $5 + local.get $5 + i32.const 0 + local.get $3 + call $~lib/rt/__allocBuffer + local.set $6 + local.get $4 + local.get $6 + call $~lib/rt/pure/__retain + i32.store + local.get $4 + local.get $6 + i32.store offset=4 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $0 + i32.store offset=12 + local.get $4 + ) + (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) + (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 $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + 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 $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $3 + i32.const 0 + drop + i32.const 1 + i32.const 1 + i32.eq + drop + local.get $2 + local.get $3 + i32.lt_s + if + local.get $4 + local.get $2 + i32.add + local.get $1 + local.get $3 + local.get $2 + i32.sub + call $~lib/memory/memory.fill + end + local.get $0 + call $~lib/rt/pure/__retain + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (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#__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 496 + i32.const 80 + i32.const 104 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/array/Array#__uget + local.set $2 + i32.const 0 + 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 $5 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + 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 + local.set $5 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + 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 $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + ) + (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) + (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 $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + 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 $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + end + local.set $3 + i32.const 0 + drop + i32.const 4 + i32.const 1 + i32.eq + drop + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $0 + call $~lib/rt/pure/__retain + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (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/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 496 + i32.const 80 + i32.const 104 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/array/Array#__uget + local.set $2 + i32.const 0 + 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 $5 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + 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 + local.set $5 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + 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 $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.const 16 + i32.sub + i32.load offset=12 + ) + (func $std/array/internalCapacity (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + i32.load + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + call $~lib/arraybuffer/ArrayBuffer#get:byteLength + i32.const 2 + i32.shr_s + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 16 + i32.sub + local.set $1 + local.get $0 + i32.const 0 + i32.ne + if (result i32) + local.get $0 + i32.const 15 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load + i32.const 1 + i32.and + i32.eqz + else + i32.const 0 + end + if (result i32) + local.get $1 + i32.load offset=4 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eqz + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + ) + (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $1 + i32.load + local.set $2 + local.get $1 + local.get $2 + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + i32.const 1 + drop + local.get $1 + call $~lib/rt/rtrace/onfree + ) + (func $~lib/rt/tlsf/reallocateBlock (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 $2 + call $~lib/rt/tlsf/prepareSize + local.set $3 + local.get $1 + i32.load + local.set $4 + local.get $3 + local.get $4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.le_u + if + local.get $0 + local.get $1 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + local.get $1 + local.get $2 + i32.store offset=12 + local.get $1 + return + end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $6 + local.get $6 + i32.load + local.set $7 + local.get $7 + i32.const 1 + i32.and + if + local.get $4 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.add + local.get $7 + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.set $5 + local.get $5 + local.get $3 + i32.ge_u + if + local.get $0 + local.get $6 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $4 + i32.const 3 + i32.and + local.get $5 + i32.or + i32.store + local.get $1 + local.get $2 + i32.store offset=12 + local.get $0 + local.get $1 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + local.get $1 + return + end + end + local.get $0 + local.get $2 + local.get $1 + i32.load offset=8 + call $~lib/rt/tlsf/allocateBlock + local.set $8 + local.get $8 + local.get $1 + i32.load offset=4 + i32.store offset=4 + local.get $8 + i32.const 16 + i32.add + local.get $1 + i32.const 16 + i32.add + local.get $2 + call $~lib/memory/memory.copy + local.get $1 + global.get $~lib/heap/__heap_base + i32.ge_u + if + i32.const 1 + drop + local.get $1 + local.get $8 + call $~lib/rt/rtrace/onrealloc + local.get $0 + local.get $1 + call $~lib/rt/tlsf/freeBlock + end + local.get $8 + ) + (func $~lib/rt/tlsf/__realloc (param $0 i32) (param $1 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + local.get $1 + call $~lib/rt/tlsf/reallocateBlock + i32.const 16 + i32.add + ) + (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 1073741808 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + 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 + local.get $5 + call $~lib/rt/tlsf/__realloc + 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 + end + local.get $0 + local.get $5 + i32.store offset=8 + end + ) + (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 + i32.store offset=12 + local.get $3 + ) + (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/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 496 + i32.const 80 + i32.const 104 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/array/Array#__uget + local.set $2 + i32.const 0 + drop + local.get $2 + ) + (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 976 + i32.const 80 + i32.const 300 + 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 + i32.store offset=12 + local.get $2 + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=12 + local.set $2 + i32.const 1 + drop + local.get $2 + local.get $1 + i32.gt_s + if + local.get $0 + i32.load offset=4 + local.set $3 + local.get $3 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $4 + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.set $5 + loop $do-continue|0 + local.get $4 + i32.load + call $~lib/rt/pure/__release + local.get $4 + i32.const 4 + i32.add + local.tee $4 + local.get $5 + i32.lt_u + local.set $6 + local.get $6 + br_if $do-continue|0 + end + else + local.get $0 + local.get $1 + i32.const 2 + call $~lib/array/ensureSize + end + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (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) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 1073741808 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 229 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $5 + 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 + local.get $1 + call $~lib/rt/pure/__release + local.get $8 + ) + (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 $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + 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 $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + 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 $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + 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 $6 + local.get $5 + local.get $8 + i32.sub + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + local.set $11 + i32.const 0 + drop + 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 + call $~lib/rt/pure/__retain + ) + (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.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + 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 + local.set $5 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + 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 $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + 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 + i32.const 0 + drop + local.get $3 + local.get $1 + i32.store + local.get $0 + local.get $2 + i32.store offset=12 + 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 976 + i32.const 80 + i32.const 361 + 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 + i32.store offset=12 + local.get $3 + ) + (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 + call $~lib/rt/pure/__retain + ) + (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 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#indexOf (param $0 i32) (param $1 f32) (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 2 + i32.shl + i32.add + f32.load + local.get $1 + f32.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 f64) (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 3 + i32.shl + i32.add + f64.load + local.get $1 + f64.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#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) + (local $5 i32) + (local $6 f32) + i32.const 1 + drop + 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 0 + 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 $4 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $6 + local.get $6 + local.get $1 + f32.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $6 + f32.ne + local.get $1 + local.get $1 + f32.ne + i32.and + end + if + i32.const 1 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const 0 + return + ) + (func $~lib/array/Array#includes (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 f64) + i32.const 1 + drop + 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 0 + 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 $4 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $6 + local.get $6 + local.get $1 + f64.eq + if (result i32) + i32.const 1 + else + local.get $6 + local.get $6 + f64.ne + local.get $1 + local.get $1 + f64.ne + i32.and + end + if + i32.const 1 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const 0 + return + ) + (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.get $0 + i32.load offset=12 + 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 $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + 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 $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + local.get $2 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $6 + 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 + i32.store offset=12 + local.get $6 + ) + (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.get $0 + i32.load offset=12 + 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 $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + 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 $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + local.get $2 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $6 + 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 + i32.store offset=12 + local.get $6 + ) + (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 + call $~lib/rt/pure/__retain + ) + (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 496 + i32.const 80 + i32.const 104 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/array/Array#__uget + local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 3920 + i32.const 80 + i32.const 108 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + 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) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + local.get $0 + i32.load offset=12 + 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 $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + 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 $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + local.get $2 + i32.const 2 + i32.const 11 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $6 + 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 + i32.store offset=12 + local.get $6 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (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 + call $~lib/rt/pure/__retain + ) + (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 496 + i32.const 80 + i32.const 104 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/array/Array#__uget + local.set $2 + i32.const 1 + drop + i32.const 1 + i32.eqz + drop + local.get $2 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop + 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 (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 496 + i32.const 80 + i32.const 120 + 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 + i32.store offset=12 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $start:std/array~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 0 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/array/Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (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.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 + 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 $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 1 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 100 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|3 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + local.get $0 + i32.const 100 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|4 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 100 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|5 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $2 + call $~lib/array/Array#pop + drop + local.get $0 + i32.const 100 + i32.eq + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|6 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 0 + i32.ge_s + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + 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) + 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 + i32.const 3 + global.set $~argumentsLength + local.get $1 + 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 $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 0 + i32.le_s + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|8 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + local.get $0 + i32.const 10 + i32.lt_s + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|9 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 10 + i32.lt_s + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|10 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $2 + call $~lib/array/Array#pop + drop + local.get $0 + i32.const 3 + i32.lt_s + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|11 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 3 + i32.ge_s + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + 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) + 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 + i32.const 3 + global.set $~argumentsLength + local.get $1 + 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 $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const -1 + i32.le_s + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|13 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $2 + i32.const 100 + call $~lib/array/Array#push + drop + local.get $0 + i32.const 10 + i32.gt_s + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|14 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 10 + i32.gt_s + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|15 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $2 + call $~lib/array/Array#pop + drop + local.get $0 + i32.const 3 + i32.gt_s + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|16 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + local.get $2 + call $~lib/rt/pure/__release + ) + (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 $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 + 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|17 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + 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 $2 + call $~lib/rt/pure/__release + ) + (func $start:std/array~anonymous|18 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + local.get $2 + call $~lib/rt/pure/__release + ) + (func $start:std/array~anonymous|19 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $2 + call $~lib/array/Array#pop + drop + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + local.get $2 + call $~lib/rt/pure/__release + ) + (func $start:std/array~anonymous|20 (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + 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 + if + 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 + local.set $4 + local.get $4 + if + local.get $2 + i32.const 100 + local.get $3 + 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 + local.set $4 + local.get $4 + if + 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 + local.set $4 + local.get $4 + if + 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.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 625 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + call $~lib/rt/pure/__release + ) + (func $start:std/array~anonymous|21 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (local $3 f32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + f32.convert_i32_s + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (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.get $0 + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 2 + i32.const 9 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $3 + 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 + call_indirect (type $i32_i32_i32_=>_f32) + local.set $8 + i32.const 0 + drop + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $8 + f32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (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/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 496 + i32.const 80 + i32.const 104 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/array/Array#__uget + 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 $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + 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.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (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.get $0 + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $3 + 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 + call_indirect (type $i32_i32_i32_=>_i32) + local.set $7 + i32.const 0 + drop + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $3 + ) + (func $start:std/array~anonymous|23 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + local.get $0 + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|24 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $2 + 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 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|25 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 2 + i32.ge_s + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + 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) + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $2 + 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 + 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 + ) + (func $start:std/array~anonymous|26 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + 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 + i32.const 2 + i32.ge_s + local.set $3 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|27 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + 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 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|28 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $2 + 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 + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $start:std/array~anonymous|29 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (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.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 + i32.const 4 + global.set $~argumentsLength + local.get $1 + 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 + end + local.get $3 + ) + (func $start:std/array~anonymous|30 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $start:std/array~anonymous|31 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 2 + i32.gt_s + end + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (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.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 + i32.const 4 + global.set $~argumentsLength + local.get $1 + 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 + 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 $4 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 100 + i32.gt_s + end + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $start:std/array~anonymous|33 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $3 + i32.const 1 + call $~lib/array/Array#push + drop + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $start:std/array~anonymous|34 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + 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) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $3 + call $~lib/array/Array#pop + drop + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $start:std/array~anonymous|36 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + 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.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 + i32.const 4 + global.set $~argumentsLength + local.get $1 + 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|37 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $start:std/array~anonymous|38 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 2 + i32.gt_s + end + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + 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.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 + i32.const 4 + global.set $~argumentsLength + local.get $1 + 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 $4 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 100 + i32.gt_s + end + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $start:std/array~anonymous|40 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $3 + i32.const 1 + call $~lib/array/Array#push + drop + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $start:std/array~anonymous|41 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $start:std/array~anonymous|42 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $3 + call $~lib/array/Array#pop + drop + local.get $0 + local.get $1 + i32.add + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + ) + (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 4032 + i32.const 1398 + 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 f32) + (local $6 i32) + (local $7 i32) + (local $8 f32) + (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 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 + 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 + 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 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + call $~lib/rt/tlsf/maybeInitialize + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (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 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 + i32.const 0 + 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 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 + call_indirect (type $f32_f32_=>_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 + f32.store + local.get $0 + local.get $8 + i32.const 2 + i32.shl + i32.add + local.get $10 + f32.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 + 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 + 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 + end + end + local.get $4 + call $~lib/rt/tlsf/__free + local.get $0 + f32.load offset=4 + local.set $12 + local.get $0 + local.get $0 + f32.load + f32.store offset=4 + local.get $0 + local.get $12 + f32.store + ) + (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 + call $~lib/rt/pure/__retain + 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 + 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 + call $~lib/rt/pure/__retain + 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 + call $~lib/rt/pure/__retain + ) + (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/array/Array#sort@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 + 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 44 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/array/Array#sort + ) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 f32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + 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 + local.set $6 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $6 + return + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + ) + (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.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 + 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 + 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 + i32.const 0 + 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 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 + 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 + 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 + 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 $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/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 + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 1 + i32.le_s + if + local.get $0 + call $~lib/rt/pure/__retain + return + end + local.get $0 + i32.load offset=4 + local.set $3 + local.get $2 + 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 + 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 + call $~lib/rt/pure/__retain + 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 + call $~lib/rt/pure/__retain + ) + (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 + 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/array/Array#sort@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 + 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 45 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/array/Array#sort + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (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/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 496 + i32.const 80 + i32.const 104 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/array/Array#__uget + local.set $2 + i32.const 0 + 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 $5 f64) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + 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 + local.set $6 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $6 + return + end + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + ) + (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 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 + 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 + ) + (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 + i32.const 0 + 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 2 + i32.shl + i32.add + i32.load + local.set $9 + local.get $0 + local.get $5 + 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 + 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 + 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 + 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 + 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.sub + 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 + call $~lib/rt/pure/__retain + 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 + 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 + call $~lib/rt/pure/__retain + 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 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 + call $~lib/rt/pure/__retain + ) + (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/array/Array#sort@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 + 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 46 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/array/Array#sort + ) + (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 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 + 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 + ) + (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 + i32.const 0 + 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 2 + i32.shl + i32.add + i32.load + local.set $9 + local.get $0 + local.get $5 + 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 + 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 + 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 + 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 + 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.sub + 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 + call $~lib/rt/pure/__retain + 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 + 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 + call $~lib/rt/pure/__retain + 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 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 + call $~lib/rt/pure/__retain + ) + (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/array/Array#sort@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 + 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 47 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/array/Array#sort + ) + (func $std/array/createReverseOrderedArray (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + local.get $0 + call $~lib/array/Array#constructor + local.set $1 + 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 + 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 $1 + ) + (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/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 + f64.reinterpret_i64 + f64.const 1 + f64.sub + ) + (func $std/array/createRandomOrderedArray (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + local.get $0 + call $~lib/array/Array#constructor + local.set $1 + 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 + 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 + local.get $1 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|1 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (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.get $0 + call $~lib/rt/pure/__retain + local.set $0 + 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.lt_s + local.set $4 + 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 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + i32.const 0 + local.set $5 + local.get $0 + call $~lib/rt/pure/__release + 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 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/array/assertSorted (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + local.get $1 + call $~lib/array/Array#sort + local.tee $2 + local.get $1 + call $std/array/isSorted + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + ) + (func $std/array/assertSortedDefault (param $0 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + 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 48 + br $~lib/util/sort/COMPARATOR|inlined.1 + end + call $std/array/assertSorted + local.get $0 + call $~lib/rt/pure/__release + ) + (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>#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.get $0 + i32.eqz + if + i32.const 16 + i32.const 12 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + i32.const 0 + i32.store + 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 1073741808 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 57 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + local.set $2 + local.get $2 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $3 + local.get $3 + i32.const 0 + local.get $2 + call $~lib/memory/memory.fill + local.get $0 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $6 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + local.set $5 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + i32.store + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=12 + local.get $0 + ) + (func $~lib/array/Array<~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $3 + local.get $3 + i32.load + local.set $4 + local.get $2 + local.get $4 + i32.ne + if + local.get $3 + local.get $2 + call $~lib/rt/pure/__retain + i32.store + local.get $4 + call $~lib/rt/pure/__release + end + local.get $2 + call $~lib/rt/pure/__release + ) + (func $~lib/array/Array<~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + 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 496 + i32.const 80 + i32.const 120 + 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 + i32.store offset=12 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/array/Array>#__uset + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/array/createReverseOrderedNestedArray (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 0 + local.get $0 + call $~lib/array/Array<~lib/array/Array>#constructor + local.set $1 + 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 + i32.const 0 + i32.const 1 + call $~lib/array/Array#constructor + local.set $4 + local.get $4 + 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.get $2 + local.get $4 + call $~lib/array/Array<~lib/array/Array>#__set + local.get $4 + call $~lib/rt/pure/__release + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + ) + (func $start:std/array~anonymous|47 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.sub + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (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) + 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 2 + i32.shl + i32.add + i32.load + call $~lib/rt/pure/__retain + 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 + call $~lib/rt/pure/__retain + local.set $8 + local.get $5 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $2 + 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 + local.get $8 + call $~lib/rt/pure/__release + br $while-break|1 + end + local.get $8 + call $~lib/rt/pure/__release + 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 $5 + call $~lib/rt/pure/__release + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + ) + (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.get $0 + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 1 + i32.le_s + if + local.get $0 + call $~lib/rt/pure/__retain + 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 + call $~lib/rt/pure/__retain + local.set $4 + local.get $3 + i32.load + call $~lib/rt/pure/__retain + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + 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 + call $~lib/rt/pure/__retain + local.set $6 + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + return + end + local.get $3 + local.set $5 + local.get $2 + local.set $4 + local.get $1 + local.set $6 + i32.const 1 + drop + local.get $5 + local.get $4 + local.get $6 + call $~lib/util/sort/insertionSort<~lib/array/Array> + local.get $0 + call $~lib/rt/pure/__retain + ) + (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<~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 + call $~lib/rt/pure/__retain + ) + (func $~lib/array/Array<~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 496 + i32.const 80 + i32.const 104 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#__uget + local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 3920 + i32.const 80 + i32.const 108 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + ) + (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.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 1 + local.set $2 + local.get $0 + call $~lib/array/Array<~lib/array/Array>#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 + i32.const 1 + i32.sub + call $~lib/array/Array<~lib/array/Array>#__get + local.tee $5 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/array/Array>#__get + local.tee $6 + i32.const 2 + global.set $~argumentsLength + local.get $1 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + i32.const 0 + local.set $7 + local.get $0 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + return + end + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/array/assertSorted<~lib/array/Array> (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#sort + local.tee $2 + local.get $1 + call $std/array/isSorted<~lib/array/Array> + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + ) + (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.get $0 + i32.eqz + if + i32.const 16 + i32.const 14 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + i32.const 0 + i32.store + 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 1073741808 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 57 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + local.set $2 + local.get $2 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $3 + local.get $3 + i32.const 0 + local.get $2 + call $~lib/memory/memory.fill + local.get $0 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $6 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + local.set $5 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + i32.store + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=12 + local.get $0 + ) + (func $std/array/Proxy#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.eqz + if + i32.const 4 + i32.const 13 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + local.get $1 + i32.store + local.get $0 + ) + (func $~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $3 + local.get $3 + i32.load + local.set $4 + local.get $2 + local.get $4 + i32.ne + if + local.get $3 + local.get $2 + call $~lib/rt/pure/__retain + i32.store + local.get $4 + call $~lib/rt/pure/__release + end + local.get $2 + call $~lib/rt/pure/__release + ) + (func $~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + 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 496 + i32.const 80 + i32.const 120 + 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 + i32.store offset=12 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array>#__uset + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/array/createReverseOrderedElementsArray (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 0 + local.get $0 + call $~lib/array/Array>#constructor + local.set $1 + 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.tee $4 + call $~lib/array/Array>#__set + local.get $4 + call $~lib/rt/pure/__release + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + ) + (func $start:std/array~anonymous|48 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load + local.get $1 + i32.load + i32.sub + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (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 2 + i32.shl + i32.add + i32.load + call $~lib/rt/pure/__retain + 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 + call $~lib/rt/pure/__retain + local.set $8 + local.get $5 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $2 + 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 + local.get $8 + call $~lib/rt/pure/__release + br $while-break|1 + end + local.get $8 + call $~lib/rt/pure/__release + 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 $5 + call $~lib/rt/pure/__release + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + ) + (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 + call $~lib/rt/pure/__retain + 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 + call $~lib/rt/pure/__retain + local.set $4 + local.get $3 + i32.load + call $~lib/rt/pure/__retain + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + 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 + call $~lib/rt/pure/__retain + local.set $6 + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + return + end + local.get $3 + local.set $5 + local.get $2 + local.set $4 + local.get $1 + local.set $6 + i32.const 1 + drop + local.get $5 + local.get $4 + local.get $6 + call $~lib/util/sort/insertionSort> + local.get $0 + call $~lib/rt/pure/__retain + ) + (func $~lib/array/Array>#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (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 + call $~lib/rt/pure/__retain + ) + (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 496 + i32.const 80 + i32.const 104 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/array/Array>#__uget + local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 3920 + i32.const 80 + i32.const 108 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + ) + (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.get $0 + call $~lib/rt/pure/__retain + local.set $0 + 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.lt_s + local.set $4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array>#__get + local.tee $5 + local.get $0 + local.get $2 + call $~lib/array/Array>#__get + local.tee $6 + i32.const 2 + global.set $~argumentsLength + local.get $1 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + i32.const 0 + local.set $7 + local.get $0 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + return + end + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/array/assertSorted> (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + local.get $1 + call $~lib/array/Array>#sort + local.tee $2 + local.get $1 + call $std/array/isSorted> + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + ) + (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) + 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 2 + i32.shl + i32.add + i32.load + call $~lib/rt/pure/__retain + 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 + call $~lib/rt/pure/__retain + local.set $8 + local.get $5 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $2 + 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 + local.get $8 + call $~lib/rt/pure/__release + br $while-break|1 + end + local.get $8 + call $~lib/rt/pure/__release + 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 $5 + call $~lib/rt/pure/__release + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + ) + (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.get $0 + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 1 + i32.le_s + if + local.get $0 + call $~lib/rt/pure/__retain + 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 + call $~lib/rt/pure/__retain + local.set $4 + local.get $3 + i32.load + call $~lib/rt/pure/__retain + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + 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 + call $~lib/rt/pure/__retain + local.set $6 + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + return + end + local.get $3 + local.set $5 + local.get $2 + local.set $4 + local.get $1 + local.set $6 + i32.const 1 + drop + local.get $5 + local.get $4 + local.get $6 + call $~lib/util/sort/insertionSort<~lib/string/String | null> + local.get $0 + call $~lib/rt/pure/__retain + ) + (func $~lib/array/Array<~lib/string/String | null>#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array<~lib/string/String | null>#__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 + call $~lib/rt/pure/__retain + ) + (func $~lib/array/Array<~lib/string/String | null>#__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 496 + i32.const 80 + i32.const 104 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String | null>#__uget + local.set $2 + i32.const 1 + drop + i32.const 1 + i32.eqz + drop + local.get $2 + ) + (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) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 1 + local.set $2 + local.get $0 + call $~lib/array/Array<~lib/string/String | null>#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 + i32.const 1 + i32.sub + call $~lib/array/Array<~lib/string/String | null>#__get + local.tee $5 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/string/String | null>#__get + local.tee $6 + i32.const 2 + global.set $~argumentsLength + local.get $1 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + i32.const 0 + local.set $7 + local.get $0 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + return + end + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/array/assertSorted<~lib/string/String | null> (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String | null>#sort + local.tee $2 + local.get $1 + call $std/array/isSorted<~lib/string/String | null> + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + ) + (func $~lib/string/String#get:length (param $0 i32) (result i32) + local.get $0 + i32.const 16 + i32.sub + i32.load offset=12 + 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 $10 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + 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 $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 + local.set $10 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $10 + 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 + local.set $7 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $7 + ) + (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 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $3 + local.get $1 + call $~lib/string/String#get:length + local.set $4 + local.get $3 + i32.eqz + if (result i32) + local.get $4 + i32.eqz + else + i32.const 0 + end + if + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $3 + i32.eqz + if + i32.const -1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $4 + i32.eqz + if + i32.const 1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $3 + local.tee $2 + local.get $4 + local.tee $5 + local.get $2 + local.get $5 + i32.lt_s + select + call $~lib/util/string/compareImpl + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $std/array/assertSorted<~lib/string/String | null>@varargs (param $0 i32) (param $1 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + 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 55 + br $~lib/util/sort/COMPARATOR<~lib/string/String | null>|inlined.0 + end + local.set $1 + end + local.get $0 + local.get $1 + call $std/array/assertSorted<~lib/string/String | null> + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + 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 $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $3 + local.get $3 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $3 + call $~lib/util/string/compareImpl + i32.eqz + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $std/array/isArraysEqual<~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) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + i32.eqz + if + local.get $0 + 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 $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + 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<~lib/string/String | null>#__get + local.tee $5 + local.get $1 + local.get $3 + call $~lib/array/Array<~lib/string/String | null>#__get + local.tee $6 + call $~lib/string/String.__ne + if + i32.const 0 + local.set $7 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + return + end + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + ) + (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) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.eqz + if + i32.const 16 + i32.const 16 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + i32.const 0 + i32.store + 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 1073741808 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 57 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + local.set $2 + local.get $2 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $3 + local.get $3 + i32.const 0 + local.get $2 + call $~lib/memory/memory.fill + local.get $0 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $6 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + local.set $5 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + i32.store + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=12 + local.get $0 + ) + (func $~lib/string/String#charAt (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + local.get $0 + call $~lib/string/String#get:length + i32.ge_u + if + i32.const 5056 + call $~lib/rt/pure/__retain + return + end + i32.const 2 + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $2 + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $2 + call $~lib/rt/pure/__retain + ) + (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.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 0 + i32.eq + if + i32.const 5168 + local.tee $2 + local.get $1 + local.tee $3 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $3 + call $~lib/rt/pure/__release + end + local.get $2 + local.set $1 + end + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $4 + local.get $1 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $5 + local.get $4 + local.get $5 + i32.add + local.set $6 + local.get $6 + i32.const 0 + i32.eq + if + i32.const 5056 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $6 + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $7 + local.get $7 + local.get $0 + local.get $4 + call $~lib/memory/memory.copy + local.get $7 + local.get $4 + i32.add + local.get $1 + local.get $5 + call $~lib/memory/memory.copy + local.get $7 + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.const 5168 + local.get $0 + i32.const 0 + i32.ne + select + local.get $1 + call $~lib/string/String#concat + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $std/array/createRandomString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + i32.const 5056 + local.set $1 + 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 + global.get $std/array/charset + call $~lib/math/NativeMath.random + global.get $std/array/charset + 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.tee $5 + call $~lib/string/String.__concat + local.tee $6 + local.tee $7 + local.get $1 + local.tee $8 + i32.ne + if + local.get $7 + call $~lib/rt/pure/__retain + local.set $7 + local.get $8 + call $~lib/rt/pure/__release + end + local.get $7 + local.set $1 + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + ) + (func $~lib/array/Array<~lib/string/String>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $3 + local.get $3 + i32.load + local.set $4 + local.get $2 + local.get $4 + i32.ne + if + local.get $3 + local.get $2 + call $~lib/rt/pure/__retain + i32.store + local.get $4 + call $~lib/rt/pure/__release + end + local.get $2 + call $~lib/rt/pure/__release + ) + (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + 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 496 + i32.const 80 + i32.const 120 + 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 + i32.store offset=12 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__uset + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/array/createRandomStringArray (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 0 + local.get $0 + call $~lib/array/Array<~lib/string/String>#constructor + local.set $1 + 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 + call $~lib/math/NativeMath.random + f64.const 32 + f64.mul + i32.trunc_f64_s + call $std/array/createRandomString + local.tee $4 + call $~lib/array/Array<~lib/string/String>#__set + local.get $4 + call $~lib/rt/pure/__release + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + ) + (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) + 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 2 + i32.shl + i32.add + i32.load + call $~lib/rt/pure/__retain + 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 + call $~lib/rt/pure/__retain + local.set $8 + local.get $5 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $2 + 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 + local.get $8 + call $~lib/rt/pure/__release + br $while-break|1 + end + local.get $8 + call $~lib/rt/pure/__release + 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 $5 + call $~lib/rt/pure/__release + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + ) + (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.get $0 + i32.load offset=12 + local.set $2 + local.get $2 + i32.const 1 + i32.le_s + if + local.get $0 + call $~lib/rt/pure/__retain + 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 + call $~lib/rt/pure/__retain + local.set $4 + local.get $3 + i32.load + call $~lib/rt/pure/__retain + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $1 + 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 + call $~lib/rt/pure/__retain + local.set $6 + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + return + end + local.get $3 + local.set $5 + local.get $2 + local.set $4 + local.get $1 + local.set $6 + i32.const 1 + drop + local.get $5 + local.get $4 + local.get $6 + call $~lib/util/sort/insertionSort<~lib/string/String> + local.get $0 + call $~lib/rt/pure/__retain + ) + (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>#__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 + call $~lib/rt/pure/__retain + ) + (func $~lib/array/Array<~lib/string/String>#__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 496 + i32.const 80 + i32.const 104 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#__uget + local.set $2 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 3920 + i32.const 80 + i32.const 108 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + ) + (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) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 1 + local.set $2 + local.get $0 + call $~lib/array/Array<~lib/string/String>#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 + i32.const 1 + i32.sub + call $~lib/array/Array<~lib/string/String>#__get + local.tee $5 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $6 + i32.const 2 + global.set $~argumentsLength + local.get $1 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + i32.const 0 + local.set $7 + local.get $0 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + return + end + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $std/array/assertSorted<~lib/string/String> (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#sort + local.tee $2 + local.get $1 + call $std/array/isSorted<~lib/string/String> + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + ) + (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.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $3 + local.get $1 + call $~lib/string/String#get:length + local.set $4 + local.get $3 + i32.eqz + if (result i32) + local.get $4 + i32.eqz + else + i32.const 0 + end + if + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $3 + i32.eqz + if + i32.const -1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $4 + i32.eqz + if + i32.const 1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $3 + local.tee $2 + local.get $4 + local.tee $5 + local.get $2 + local.get $5 + i32.lt_s + select + call $~lib/util/string/compareImpl + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $std/array/assertSorted<~lib/string/String>@varargs (param $0 i32) (param $1 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + 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 56 + br $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.0 + end + local.set $1 + end + local.get $0 + local.get $1 + call $std/array/assertSorted<~lib/string/String> + ) + (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.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 $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + 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 $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + 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 $4 + local.get $7 + local.tee $5 + local.get $4 + local.get $5 + 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 5056 + call $~lib/rt/pure/__retain + 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 + call $~lib/rt/pure/__retain + return + end + local.get $10 + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $11 + local.get $11 + local.get $0 + local.get $8 + i32.add + local.get $10 + call $~lib/memory/memory.copy + local.get $11 + call $~lib/rt/pure/__retain + ) + (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.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 5056 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $3 + i32.eqz + if + i32.const 5232 + i32.const 5264 + local.get $0 + i32.load8_u + select + call $~lib/rt/pure/__retain + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $5 + i32.const 5 + local.set $6 + local.get $6 + local.get $5 + i32.add + local.get $3 + i32.mul + local.get $6 + i32.add + local.set $7 + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $8 + i32.const 0 + local.set $9 + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $3 + i32.lt_s + local.set $12 + local.get $12 + if + local.get $0 + local.get $4 + i32.add + i32.load8_u + local.set $10 + i32.const 4 + local.get $10 + i32.eqz + i32.add + local.set $6 + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.const 5232 + i32.const 5264 + local.get $10 + select + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $9 + local.get $6 + i32.add + local.set $9 + local.get $5 + if + local.get $8 + local.get $9 + 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 $9 + local.get $5 + i32.add + local.set $9 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + local.get $0 + local.get $3 + i32.add + i32.load8_u + local.set $10 + i32.const 4 + local.get $10 + i32.eqz + i32.add + local.set $6 + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.const 5232 + i32.const 5264 + local.get $10 + select + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $9 + local.get $6 + i32.add + local.set $9 + local.get $7 + local.get $9 + i32.gt_s + if + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $8 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return + ) + (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 + 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.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 5604 + local.get $6 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $8 + i32.const 5604 + 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 + local.set $10 + local.get $3 + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 5604 + 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 5604 + 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 6032 + 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 6032 + 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 7072 + 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 7072 + 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/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.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 5408 + i32.const 5536 + i32.const 373 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.eqz + if + i32.const 5600 + 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 + i32.const 0 + local.set $3 + 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 + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $3 + 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 + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $3 + 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 + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $3 + 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 + if + local.get $3 + i32.const 45 + i32.store16 + end + local.get $3 + call $~lib/rt/pure/__retain + ) + (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 + 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/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) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 5056 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + 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.tee $5 + local.set $6 + local.get $2 + call $~lib/rt/pure/__release + local.get $6 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $7 + i32.const 11 + local.get $7 + i32.add + local.get $3 + i32.mul + i32.const 11 + i32.add + local.set $8 + local.get $8 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $9 + i32.const 0 + local.set $10 + i32.const 0 + 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 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $10 + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $11 + call $~lib/util/number/itoa_buffered + i32.add + local.set $10 + local.get $7 + if + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $10 + local.get $7 + i32.add + local.set $10 + 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 $11 + local.get $10 + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $11 + call $~lib/util/number/itoa_buffered + i32.add + local.set $10 + local.get $8 + local.get $10 + i32.gt_s + if + local.get $9 + i32.const 0 + local.get $10 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $9 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + call $~lib/util/string/joinIntegerArray + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return + ) + (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.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 5408 + i32.const 5536 + i32.const 350 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.eqz + if + i32.const 5600 + return + end + i32.const 0 + local.set $2 + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + call $~lib/util/number/decimalCount32 + local.set $3 + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $2 + 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 + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $2 + 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 + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $2 + 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 $2 + call $~lib/rt/pure/__retain + ) + (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 + 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/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) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 5056 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $3 + 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.tee $5 + local.set $6 + local.get $2 + call $~lib/rt/pure/__release + local.get $6 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $7 + i32.const 10 + local.get $7 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $8 + local.get $8 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $9 + i32.const 0 + local.set $10 + i32.const 0 + 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 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $10 + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $11 + call $~lib/util/number/itoa_buffered + i32.add + local.set $10 + local.get $7 + if + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $10 + local.get $7 + i32.add + local.set $10 + 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 $11 + local.get $10 + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $11 + call $~lib/util/number/itoa_buffered + i32.add + local.set $10 + local.get $8 + local.get $10 + i32.gt_s + if + local.get $9 + i32.const 0 + local.get $10 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $9 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + call $~lib/util/string/joinIntegerArray + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return + ) + (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 + 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.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 8488 + 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 + 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 8488 + 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 + ) + (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 + 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 + 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 + 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 + 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 + 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 + 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 7616 + local.get $14 + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 8312 + 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 (param $0 f64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + f64.const 0 + f64.eq + if + i32.const 7488 + return + end + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $0 + local.get $0 + f64.ne + if + i32.const 7520 + return + end + i32.const 7552 + i32.const 7600 + local.get $0 + f64.const 0 + f64.lt + select + call $~lib/rt/pure/__retain + return + end + i32.const 28 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $1 + local.get $1 + local.get $0 + call $~lib/util/number/dtoa_core + local.set $2 + local.get $2 + i32.const 28 + i32.eq + if + local.get $1 + call $~lib/rt/pure/__retain + return + end + local.get $1 + i32.const 0 + local.get $2 + call $~lib/string/String#substring + local.set $3 + local.get $1 + call $~lib/rt/tlsf/__free + local.get $3 + ) + (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 $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 + 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 $0 + local.get $1 + call $~lib/util/number/dtoa_core + ) + (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 i32) + (local $9 i32) + (local $10 f64) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 5056 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $3 + i32.eqz + if + local.get $0 + f64.load + call $~lib/util/number/dtoa + local.tee $4 + local.set $5 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $6 + i32.const 28 + local.get $6 + i32.add + local.get $3 + i32.mul + i32.const 28 + i32.add + local.set $7 + local.get $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $8 + i32.const 0 + local.set $9 + i32.const 0 + 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 3 + i32.shl + i32.add + f64.load + local.set $10 + local.get $9 + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $10 + call $~lib/util/number/dtoa_buffered + i32.add + local.set $9 + local.get $6 + if + local.get $8 + local.get $9 + 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 $9 + local.get $6 + i32.add + local.set $9 + 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 3 + i32.shl + i32.add + f64.load + local.set $10 + local.get $9 + local.get $8 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $10 + call $~lib/util/number/dtoa_buffered + i32.add + local.set $9 + local.get $7 + local.get $9 + i32.gt_s + if + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $8 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 1 + drop + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/string/joinFloatArray + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return + ) + (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) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 5056 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i32.load + local.tee $4 + if (result i32) + local.get $4 + call $~lib/rt/pure/__retain + else + i32.const 5056 + end + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + i32.const 0 + local.set $5 + i32.const 0 + local.set $6 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $1 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + local.get $6 + local.tee $9 + i32.ne + if + local.get $8 + call $~lib/rt/pure/__retain + local.set $8 + local.get $9 + call $~lib/rt/pure/__release + end + local.get $8 + local.set $6 + 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 + local.set $10 + local.get $2 + call $~lib/string/String#get:length + local.set $11 + local.get $5 + local.get $11 + local.get $3 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $12 + i32.const 0 + local.set $4 + loop $for-loop|1 + local.get $4 + local.get $3 + i32.lt_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $6 + local.tee $8 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + local.set $9 + local.get $8 + call $~lib/rt/pure/__release + end + local.get $9 + local.set $6 + local.get $6 + i32.const 0 + i32.ne + if + local.get $6 + call $~lib/string/String#get:length + local.set $9 + local.get $12 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $9 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $10 + local.get $9 + i32.add + local.set $10 + end + local.get $11 + if + local.get $12 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $11 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $10 + local.get $11 + i32.add + local.set $10 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + local.get $6 + local.tee $4 + i32.ne + if + local.get $8 + call $~lib/rt/pure/__retain + local.set $8 + local.get $4 + call $~lib/rt/pure/__release + end + local.get $8 + local.set $6 + local.get $6 + i32.const 0 + i32.ne + if + local.get $12 + local.get $10 + 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 $12 + call $~lib/rt/pure/__retain + local.set $8 + local.get $2 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $8 + ) + (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) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return + ) + (func $std/array/Ref#toString (param $0 i32) (result i32) + i32.const 8704 + ) + (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) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 5056 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + i32.const 0 + local.set $5 + local.get $3 + i32.eqz + if + local.get $0 + i32.load + local.tee $4 + local.get $5 + local.tee $6 + i32.ne + if + local.get $4 + call $~lib/rt/pure/__retain + local.set $4 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $4 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if (result i32) + local.get $5 + call $std/array/Ref#toString + else + i32.const 5056 + end + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $4 + return + end + i32.const 5056 + local.set $7 + local.get $2 + call $~lib/string/String#get:length + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $5 + local.tee $10 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + local.set $9 + local.get $10 + call $~lib/rt/pure/__release + end + local.get $9 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if + local.get $7 + local.get $5 + call $std/array/Ref#toString + local.tee $9 + call $~lib/string/String.__concat + local.tee $10 + local.tee $11 + local.get $7 + local.tee $12 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + local.set $11 + local.get $12 + call $~lib/rt/pure/__release + end + local.get $11 + local.set $7 + local.get $9 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + end + local.get $8 + if + local.get $7 + local.get $2 + call $~lib/string/String.__concat + local.tee $10 + local.tee $12 + local.get $7 + local.tee $9 + i32.ne + if + local.get $12 + call $~lib/rt/pure/__retain + local.set $12 + local.get $9 + call $~lib/rt/pure/__release + end + local.get $12 + local.set $7 + local.get $10 + call $~lib/rt/pure/__release + 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.tee $11 + local.get $5 + local.tee $4 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + local.set $11 + local.get $4 + call $~lib/rt/pure/__release + end + local.get $11 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if + local.get $7 + local.get $5 + call $std/array/Ref#toString + local.tee $11 + call $~lib/string/String.__concat + local.tee $4 + local.tee $9 + local.get $7 + local.tee $6 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + local.set $9 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $9 + local.set $7 + local.get $11 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + end + local.get $7 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return + ) + (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) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 5056 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + i32.const 0 + local.set $5 + local.get $3 + i32.eqz + if + local.get $0 + i32.load + local.tee $4 + local.get $5 + local.tee $6 + i32.ne + if + local.get $4 + call $~lib/rt/pure/__retain + local.set $4 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $4 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if (result i32) + local.get $5 + call $std/array/Ref#toString + else + i32.const 5056 + end + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $4 + return + end + i32.const 5056 + local.set $7 + local.get $2 + call $~lib/string/String#get:length + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $5 + local.tee $10 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + local.set $9 + local.get $10 + call $~lib/rt/pure/__release + end + local.get $9 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if + local.get $7 + local.get $5 + call $std/array/Ref#toString + local.tee $9 + call $~lib/string/String.__concat + local.tee $10 + local.tee $11 + local.get $7 + local.tee $12 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + local.set $11 + local.get $12 + call $~lib/rt/pure/__release + end + local.get $11 + local.set $7 + local.get $9 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + end + local.get $8 + if + local.get $7 + local.get $2 + call $~lib/string/String.__concat + local.tee $10 + local.tee $12 + local.get $7 + local.tee $9 + i32.ne + if + local.get $12 + call $~lib/rt/pure/__retain + local.set $12 + local.get $9 + call $~lib/rt/pure/__release + end + local.get $12 + local.set $7 + local.get $10 + call $~lib/rt/pure/__release + 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.tee $11 + local.get $5 + local.tee $4 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + local.set $11 + local.get $4 + call $~lib/rt/pure/__release + end + local.get $11 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if + local.get $7 + local.get $5 + call $std/array/Ref#toString + local.tee $11 + call $~lib/string/String.__concat + local.tee $4 + local.tee $9 + local.get $7 + local.tee $6 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + local.set $9 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $9 + local.set $7 + local.get $11 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + end + local.get $7 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 5296 + call $~lib/array/Array#join + ) + (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 24 + i32.shl + i32.const 24 + 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 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 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 $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/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) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 5056 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + 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.tee $5 + local.set $6 + local.get $2 + call $~lib/rt/pure/__release + local.get $6 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $7 + i32.const 11 + local.get $7 + i32.add + local.get $3 + i32.mul + i32.const 11 + i32.add + local.set $8 + local.get $8 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $9 + i32.const 0 + local.set $10 + i32.const 0 + 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 0 + i32.shl + i32.add + i32.load8_s + local.set $11 + local.get $10 + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $11 + call $~lib/util/number/itoa_buffered + i32.add + local.set $10 + local.get $7 + if + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $10 + local.get $7 + i32.add + local.set $10 + 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 $11 + local.get $10 + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $11 + call $~lib/util/number/itoa_buffered + i32.add + local.set $10 + local.get $8 + local.get $10 + i32.gt_s + if + local.get $9 + i32.const 0 + local.get $10 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $9 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + call $~lib/util/string/joinIntegerArray + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 5296 + call $~lib/array/Array#join + ) + (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.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.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 $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + ) + (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) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 5056 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + 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.tee $5 + local.set $6 + local.get $2 + call $~lib/rt/pure/__release + local.get $6 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $7 + i32.const 10 + local.get $7 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $8 + local.get $8 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $9 + i32.const 0 + local.set $10 + i32.const 0 + 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.load16_u + local.set $11 + local.get $10 + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $11 + call $~lib/util/number/itoa_buffered + i32.add + local.set $10 + local.get $7 + if + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $10 + local.get $7 + i32.add + local.set $10 + 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 1 + i32.shl + i32.add + i32.load16_u + local.set $11 + local.get $10 + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $11 + call $~lib/util/number/itoa_buffered + i32.add + local.set $10 + local.get $8 + local.get $10 + i32.gt_s + if + local.get $9 + i32.const 0 + local.get $10 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $9 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + call $~lib/util/string/joinIntegerArray + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 5296 + call $~lib/array/Array#join + ) + (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 + 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 5604 + local.get $10 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 5604 + 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 5604 + local.get $8 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $12 + i32.const 5604 + 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/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.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 5408 + i32.const 5536 + 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 5600 + return + end + i32.const 0 + local.set $2 + 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 $3 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $4 + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $2 + 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 + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $2 + 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 + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $2 + 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 + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $2 + local.get $2 + local.get $0 + local.get $4 + local.get $1 + call $~lib/util/number/utoa64_any_core + end + end + local.get $2 + call $~lib/rt/pure/__retain + ) + (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 + 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 + 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 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 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/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i64) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 5056 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i64.load + local.set $5 + i32.const 0 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $5 + i32.const 10 + call $~lib/util/number/utoa64 + local.tee $4 + local.set $6 + local.get $2 + call $~lib/rt/pure/__release + local.get $6 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $7 + i32.const 20 + local.get $7 + i32.add + local.get $3 + i32.mul + i32.const 20 + i32.add + local.set $8 + local.get $8 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $9 + i32.const 0 + local.set $10 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $11 + local.get $10 + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $11 + call $~lib/util/number/itoa_buffered + i32.add + local.set $10 + local.get $7 + if + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $10 + local.get $7 + i32.add + local.set $10 + 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 3 + i32.shl + i32.add + i64.load + local.set $11 + local.get $10 + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $11 + call $~lib/util/number/itoa_buffered + i32.add + local.set $10 + local.get $8 + local.get $10 + i32.gt_s + if + local.get $9 + i32.const 0 + local.get $10 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $9 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + call $~lib/util/string/joinIntegerArray + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 5296 + call $~lib/array/Array#join + ) + (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.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 5408 + i32.const 5536 + i32.const 431 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i64.const 0 + i64.ne + i32.eqz + if + i32.const 5600 + 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 + i32.const 0 + local.set $3 + 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 + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $3 + 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 + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $3 + 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 + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $3 + 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 + local.get $5 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $3 + 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 + call $~lib/rt/pure/__retain + ) + (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 + 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 + 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 $3 + 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 $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 + call $~lib/util/number/utoa64_dec_lut + end + local.get $3 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i64) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 5056 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $3 + i32.eqz + if + local.get $0 + i64.load + local.set $5 + i32.const 1 + drop + i32.const 8 + i32.const 4 + i32.le_u + drop + local.get $5 + i32.wrap_i64 + i64.extend_i32_s + i32.const 10 + call $~lib/util/number/itoa64 + local.tee $4 + local.set $6 + local.get $2 + call $~lib/rt/pure/__release + local.get $6 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $7 + i32.const 21 + local.get $7 + i32.add + local.get $3 + i32.mul + i32.const 21 + i32.add + local.set $8 + local.get $8 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $9 + i32.const 0 + local.set $10 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $11 + local.get $10 + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $11 + call $~lib/util/number/itoa_buffered + i32.add + local.set $10 + local.get $7 + if + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $10 + local.get $7 + i32.add + local.set $10 + 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 3 + i32.shl + i32.add + i64.load + local.set $11 + local.get $10 + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $11 + call $~lib/util/number/itoa_buffered + i32.add + local.set $10 + local.get $8 + local.get $10 + i32.gt_s + if + local.get $9 + i32.const 0 + local.get $10 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $9 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + call $~lib/util/string/joinIntegerArray + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 5296 + call $~lib/array/Array#join + ) + (func $~lib/array/Array<~lib/string/String | null>#toString (param $0 i32) (result i32) + local.get $0 + i32.const 5296 + call $~lib/array/Array<~lib/string/String | null>#join + ) + (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) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 5056 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + i32.const 0 + local.set $5 + local.get $3 + i32.eqz + if + local.get $0 + i32.load + local.tee $4 + local.get $5 + local.tee $6 + i32.ne + if + local.get $4 + call $~lib/rt/pure/__retain + local.set $4 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $4 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if (result i32) + local.get $5 + call $~lib/array/Array#toString + else + i32.const 5056 + end + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $4 + return + end + i32.const 5056 + local.set $7 + local.get $2 + call $~lib/string/String#get:length + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $5 + local.tee $10 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + local.set $9 + local.get $10 + call $~lib/rt/pure/__release + end + local.get $9 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if + local.get $7 + local.get $5 + call $~lib/array/Array#toString + local.tee $9 + call $~lib/string/String.__concat + local.tee $10 + local.tee $11 + local.get $7 + local.tee $12 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + local.set $11 + local.get $12 + call $~lib/rt/pure/__release + end + local.get $11 + local.set $7 + local.get $9 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + end + local.get $8 + if + local.get $7 + local.get $2 + call $~lib/string/String.__concat + local.tee $10 + local.tee $12 + local.get $7 + local.tee $9 + i32.ne + if + local.get $12 + call $~lib/rt/pure/__retain + local.set $12 + local.get $9 + call $~lib/rt/pure/__release + end + local.get $12 + local.set $7 + local.get $10 + call $~lib/rt/pure/__release + 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.tee $11 + local.get $5 + local.tee $4 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + local.set $11 + local.get $4 + call $~lib/rt/pure/__release + end + local.get $11 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if + local.get $7 + local.get $5 + call $~lib/array/Array#toString + local.tee $11 + call $~lib/string/String.__concat + local.tee $4 + local.tee $9 + local.get $7 + local.tee $6 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + local.set $9 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $9 + local.set $7 + local.get $11 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + end + local.get $7 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $4 + ) + (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) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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> + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return + ) + (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) + local.get $0 + i32.const 5296 + call $~lib/array/Array<~lib/array/Array>#join + ) + (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 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 + local.set $3 + i32.const 1 + 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 + 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/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) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 5056 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + 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.tee $5 + local.set $6 + local.get $2 + call $~lib/rt/pure/__release + local.get $6 + return + end + local.get $2 + call $~lib/string/String#get:length + local.set $7 + i32.const 10 + local.get $7 + i32.add + local.get $3 + i32.mul + i32.const 10 + i32.add + local.set $8 + local.get $8 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $9 + i32.const 0 + local.set $10 + i32.const 0 + 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 0 + i32.shl + i32.add + i32.load8_u + local.set $11 + local.get $10 + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $11 + call $~lib/util/number/itoa_buffered + i32.add + local.set $10 + local.get $7 + if + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $10 + local.get $7 + i32.add + local.set $10 + 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 $11 + local.get $10 + local.get $9 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $11 + call $~lib/util/number/itoa_buffered + i32.add + local.set $10 + local.get $8 + local.get $10 + i32.gt_s + if + local.get $9 + i32.const 0 + local.get $10 + call $~lib/string/String#substring + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $4 + return + end + local.get $9 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + call $~lib/util/string/joinIntegerArray + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 5296 + call $~lib/array/Array#join + ) + (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) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 5056 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + i32.const 0 + local.set $5 + local.get $3 + i32.eqz + if + local.get $0 + i32.load + local.tee $4 + local.get $5 + local.tee $6 + i32.ne + if + local.get $4 + call $~lib/rt/pure/__retain + local.set $4 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $4 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if (result i32) + local.get $5 + call $~lib/array/Array#toString + else + i32.const 5056 + end + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $4 + return + end + i32.const 5056 + local.set $7 + local.get $2 + call $~lib/string/String#get:length + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $5 + local.tee $10 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + local.set $9 + local.get $10 + call $~lib/rt/pure/__release + end + local.get $9 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if + local.get $7 + local.get $5 + call $~lib/array/Array#toString + local.tee $9 + call $~lib/string/String.__concat + local.tee $10 + local.tee $11 + local.get $7 + local.tee $12 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + local.set $11 + local.get $12 + call $~lib/rt/pure/__release + end + local.get $11 + local.set $7 + local.get $9 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + end + local.get $8 + if + local.get $7 + local.get $2 + call $~lib/string/String.__concat + local.tee $10 + local.tee $12 + local.get $7 + local.tee $9 + i32.ne + if + local.get $12 + call $~lib/rt/pure/__retain + local.set $12 + local.get $9 + call $~lib/rt/pure/__release + end + local.get $12 + local.set $7 + local.get $10 + call $~lib/rt/pure/__release + 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.tee $11 + local.get $5 + local.tee $4 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + local.set $11 + local.get $4 + call $~lib/rt/pure/__release + end + local.get $11 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if + local.get $7 + local.get $5 + call $~lib/array/Array#toString + local.tee $11 + call $~lib/string/String.__concat + local.tee $4 + local.tee $9 + local.get $7 + local.tee $6 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + local.set $9 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $9 + local.set $7 + local.get $11 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + end + local.get $7 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $4 + ) + (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) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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> + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return + ) + (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) + local.get $0 + i32.const 5296 + call $~lib/array/Array<~lib/array/Array>#join + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + local.get $0 + i32.const 5296 + call $~lib/array/Array#join + ) + (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) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 5056 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + i32.const 0 + local.set $5 + local.get $3 + i32.eqz + if + local.get $0 + i32.load + local.tee $4 + local.get $5 + local.tee $6 + i32.ne + if + local.get $4 + call $~lib/rt/pure/__retain + local.set $4 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $4 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if (result i32) + local.get $5 + call $~lib/array/Array#toString + else + i32.const 5056 + end + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $4 + return + end + i32.const 5056 + local.set $7 + local.get $2 + call $~lib/string/String#get:length + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $5 + local.tee $10 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + local.set $9 + local.get $10 + call $~lib/rt/pure/__release + end + local.get $9 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if + local.get $7 + local.get $5 + call $~lib/array/Array#toString + local.tee $9 + call $~lib/string/String.__concat + local.tee $10 + local.tee $11 + local.get $7 + local.tee $12 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + local.set $11 + local.get $12 + call $~lib/rt/pure/__release + end + local.get $11 + local.set $7 + local.get $9 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + end + local.get $8 + if + local.get $7 + local.get $2 + call $~lib/string/String.__concat + local.tee $10 + local.tee $12 + local.get $7 + local.tee $9 + i32.ne + if + local.get $12 + call $~lib/rt/pure/__retain + local.set $12 + local.get $9 + call $~lib/rt/pure/__release + end + local.get $12 + local.set $7 + local.get $10 + call $~lib/rt/pure/__release + 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.tee $11 + local.get $5 + local.tee $4 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + local.set $11 + local.get $4 + call $~lib/rt/pure/__release + end + local.get $11 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if + local.get $7 + local.get $5 + call $~lib/array/Array#toString + local.tee $11 + call $~lib/string/String.__concat + local.tee $4 + local.tee $9 + local.get $7 + local.tee $6 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + local.set $9 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $9 + local.set $7 + local.get $11 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + end + local.get $7 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $4 + ) + (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) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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> + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return + ) + (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) + local.get $0 + i32.const 5296 + call $~lib/array/Array<~lib/array/Array>#join + ) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> (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.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.set $3 + local.get $3 + i32.const 0 + i32.lt_s + if + i32.const 5056 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + return + end + i32.const 0 + local.set $5 + local.get $3 + i32.eqz + if + local.get $0 + i32.load + local.tee $4 + local.get $5 + local.tee $6 + i32.ne + if + local.get $4 + call $~lib/rt/pure/__retain + local.set $4 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $4 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if (result i32) + local.get $5 + call $~lib/array/Array<~lib/array/Array>#toString + else + i32.const 5056 + end + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $4 + return + end + i32.const 5056 + local.set $7 + local.get $2 + call $~lib/string/String#get:length + local.set $8 + i32.const 0 + local.set $4 + loop $for-loop|0 + local.get $4 + local.get $3 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $5 + local.tee $10 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + local.set $9 + local.get $10 + call $~lib/rt/pure/__release + end + local.get $9 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if + local.get $7 + local.get $5 + call $~lib/array/Array<~lib/array/Array>#toString + local.tee $9 + call $~lib/string/String.__concat + local.tee $10 + local.tee $11 + local.get $7 + local.tee $12 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + local.set $11 + local.get $12 + call $~lib/rt/pure/__release + end + local.get $11 + local.set $7 + local.get $9 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + end + local.get $8 + if + local.get $7 + local.get $2 + call $~lib/string/String.__concat + local.tee $10 + local.tee $12 + local.get $7 + local.tee $9 + i32.ne + if + local.get $12 + call $~lib/rt/pure/__retain + local.set $12 + local.get $9 + call $~lib/rt/pure/__release + end + local.get $12 + local.set $7 + local.get $10 + call $~lib/rt/pure/__release + 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.tee $11 + local.get $5 + local.tee $4 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + local.set $11 + local.get $4 + call $~lib/rt/pure/__release + end + local.get $11 + local.set $5 + local.get $5 + i32.const 0 + i32.ne + if + local.get $7 + local.get $5 + call $~lib/array/Array<~lib/array/Array>#toString + local.tee $11 + call $~lib/string/String.__concat + local.tee $4 + local.tee $9 + local.get $7 + local.tee $6 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + local.set $9 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $9 + local.set $7 + local.get $11 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + end + local.get $7 + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $4 + ) + (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) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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<~lib/array/Array>> + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return + ) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (param $0 i32) (result i32) + local.get $0 + i32.const 5296 + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join + ) + (func $~lib/array/Array<~lib/array/Array>#flat (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + i32.const 1 + i32.eqz + drop + local.get $0 + i32.load offset=12 + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $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.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + local.get $3 + local.get $6 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + else + local.get $6 + i32.load offset=12 + end + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $8 + i32.const 16 + i32.const 3 + call $~lib/rt/tlsf/__alloc + local.set $9 + local.get $9 + local.get $3 + i32.store offset=12 + local.get $9 + local.get $7 + i32.store offset=8 + local.get $9 + local.get $8 + i32.store offset=4 + local.get $9 + local.get $8 + call $~lib/rt/pure/__retain + i32.store + i32.const 0 + local.set $10 + 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 + block $for-continue|1 + local.get $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + local.get $6 + i32.const 0 + i32.eq + if + br $for-continue|1 + end + local.get $6 + i32.load offset=8 + local.set $11 + local.get $8 + local.get $10 + i32.add + local.get $6 + i32.load offset=4 + local.get $11 + call $~lib/memory/memory.copy + local.get $10 + local.get $11 + i32.add + local.set $10 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + i32.const 0 + drop + local.get $9 + call $~lib/rt/pure/__retain + ) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String | null>>#flat (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) + i32.const 1 + i32.eqz + drop + local.get $0 + i32.load offset=12 + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $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.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + local.get $3 + local.get $6 + i32.const 0 + i32.eq + if (result i32) + i32.const 0 + else + local.get $6 + i32.load offset=12 + end + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $8 + i32.const 16 + i32.const 15 + call $~lib/rt/tlsf/__alloc + local.set $9 + local.get $9 + local.get $3 + i32.store offset=12 + local.get $9 + local.get $7 + i32.store offset=8 + local.get $9 + local.get $8 + i32.store offset=4 + local.get $9 + local.get $8 + call $~lib/rt/pure/__retain + i32.store + i32.const 0 + local.set $10 + 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 + block $for-continue|1 + local.get $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + local.get $6 + i32.const 0 + i32.eq + if + br $for-continue|1 + end + local.get $6 + i32.load offset=8 + local.set $11 + local.get $8 + local.get $10 + i32.add + local.get $6 + i32.load offset=4 + local.get $11 + call $~lib/memory/memory.copy + local.get $10 + local.get $11 + i32.add + local.set $10 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|1 + end + end + i32.const 1 + drop + i32.const 0 + local.set $4 + loop $for-loop|2 + local.get $4 + local.get $3 + i32.lt_s + local.set $5 + local.get $5 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/rt/pure/__retain + drop + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|2 + end + end + local.get $9 + call $~lib/rt/pure/__retain + ) + (func $start:std/array + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + (local $42 i32) + (local $43 i32) + (local $44 i32) + (local $45 i32) + (local $46 i32) + (local $47 i32) + (local $48 i32) + (local $49 i32) + (local $50 i32) + (local $51 i32) + (local $52 i32) + (local $53 i32) + (local $54 i32) + (local $55 i32) + (local $56 i32) + (local $57 i32) + (local $58 i32) + (local $59 i32) + (local $60 i32) + (local $61 i32) + (local $62 i32) + (local $63 i32) + i32.const 0 + i32.const 0 + i32.eq + drop + i32.const 4 + i32.const 4 + i32.eq + drop + i32.const 8 + i32.const 8 + i32.eq + drop + i32.const 0 + i32.const 0 + call $~lib/array/Array#constructor + global.set $std/array/arr + i32.const 0 + call $~lib/array/Array.isArray<~lib/array/Array | null> + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + local.tee $0 + call $~lib/array/Array.isArray + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + call $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 48 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $~lib/array/Array.isArray + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 400 + call $~lib/array/Array.isArray<~lib/string/String> + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array.isArray<~lib/array/Array> + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 52 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 432 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $0 + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 464 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $2 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $0 + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 560 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $3 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $0 + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 592 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 66 + 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/array/Array#fill + call $~lib/rt/pure/__release + local.get $0 + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 624 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $0 + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 656 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 688 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $5 + local.get $5 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $5 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 736 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 79 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $5 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 784 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $3 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $5 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 832 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $2 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 85 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 2 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $5 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 880 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 88 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $5 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 928 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 91 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $5 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 42 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 102 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + local.set $1 + local.get $1 + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 108 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 109 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 110 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + call $~lib/array/Array#push + drop + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 114 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 115 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 116 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 44 + call $~lib/array/Array#push + drop + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 121 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 123 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 45 + call $~lib/array/Array#push + drop + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 127 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 128 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 129 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 130 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 131 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.load offset=4 + local.set $0 + local.get $0 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + i32.store + local.get $0 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + i32.store offset=4 + local.get $1 + local.set $0 + local.get $0 + i32.const 0 + call $~lib/array/Array#set:length + local.get $0 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 139 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + i32.const 0 + i32.const 0 + call $~lib/array/Array#constructor + local.set $0 + global.get $std/array/arr + local.get $0 + call $~lib/array/Array#concat + local.set $1 + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 148 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 149 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 150 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 1024 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $3 + call $~lib/array/Array#concat + call $~lib/rt/pure/__release + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 153 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 155 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 156 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 157 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 46 + call $~lib/array/Array#push + drop + local.get $0 + i32.const 47 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.get $0 + call $~lib/array/Array#concat + local.set $6 + local.get $1 + call $~lib/rt/pure/__release + local.get $6 + local.set $1 + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 164 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 165 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/array/Array#get:length + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 167 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 168 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 169 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + call $~lib/array/Array#__get + i32.const 46 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 170 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + call $~lib/array/Array#__get + i32.const 47 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 171 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/array/Array#pop + drop + local.get $1 + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 174 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 1040 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $2 + local.get $2 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 182 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + global.get $std/array/arr + call $~lib/array/Array#concat + local.set $5 + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + local.set $1 + local.get $1 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 184 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 185 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1056 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $3 + local.get $3 + i32.const 0 + i32.const 3 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.tee $2 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1104 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 192 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1152 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $4 + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + local.set $3 + local.get $3 + i32.const 1 + i32.const 3 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.tee $4 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1200 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 194 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1248 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $5 + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + local.set $3 + local.get $3 + i32.const 1 + i32.const 2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.tee $5 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1296 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 196 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1344 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $6 + local.get $3 + call $~lib/rt/pure/__release + local.get $6 + local.set $3 + local.get $3 + i32.const 2 + i32.const 2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.tee $6 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1392 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 198 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1440 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + local.set $3 + local.get $3 + i32.const 0 + i32.const 3 + i32.const 4 + call $~lib/array/Array#copyWithin + local.tee $8 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1488 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $11 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 200 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1536 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $10 + local.get $3 + call $~lib/rt/pure/__release + local.get $10 + local.set $3 + local.get $3 + i32.const 1 + i32.const 3 + i32.const 4 + call $~lib/array/Array#copyWithin + local.tee $10 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1584 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $13 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 202 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1632 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $12 + local.get $3 + call $~lib/rt/pure/__release + local.get $12 + local.set $3 + local.get $3 + i32.const 1 + i32.const 2 + i32.const 4 + call $~lib/array/Array#copyWithin + local.tee $12 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1680 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $15 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 204 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1728 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $14 + local.get $3 + call $~lib/rt/pure/__release + local.get $14 + local.set $3 + local.get $3 + i32.const 0 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.tee $14 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1776 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $17 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 206 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1824 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $16 + local.get $3 + call $~lib/rt/pure/__release + local.get $16 + local.set $3 + local.get $3 + i32.const 0 + i32.const -2 + i32.const -1 + call $~lib/array/Array#copyWithin + local.tee $16 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1872 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $19 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 208 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1920 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $18 + local.get $3 + call $~lib/rt/pure/__release + local.get $18 + local.set $3 + local.get $3 + i32.const -4 + i32.const -3 + i32.const -2 + call $~lib/array/Array#copyWithin + local.tee $18 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1968 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $21 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 210 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2016 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $20 + local.get $3 + call $~lib/rt/pure/__release + local.get $20 + local.set $3 + local.get $3 + i32.const -4 + i32.const -3 + i32.const -1 + call $~lib/array/Array#copyWithin + local.tee $20 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2064 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $23 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 212 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2112 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $22 + local.get $3 + call $~lib/rt/pure/__release + local.get $22 + local.set $3 + local.get $3 + i32.const -4 + i32.const -3 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.tee $22 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2160 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $25 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 214 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $11 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + local.get $13 + call $~lib/rt/pure/__release + local.get $12 + call $~lib/rt/pure/__release + local.get $15 + call $~lib/rt/pure/__release + local.get $14 + call $~lib/rt/pure/__release + local.get $17 + call $~lib/rt/pure/__release + local.get $16 + call $~lib/rt/pure/__release + local.get $19 + call $~lib/rt/pure/__release + local.get $18 + call $~lib/rt/pure/__release + local.get $21 + call $~lib/rt/pure/__release + local.get $20 + call $~lib/rt/pure/__release + local.get $23 + call $~lib/rt/pure/__release + local.get $22 + call $~lib/rt/pure/__release + local.get $25 + call $~lib/rt/pure/__release + global.get $std/array/arr + i32.const 42 + call $~lib/array/Array#unshift + drop + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 222 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 223 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 224 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 225 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 226 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 227 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 41 + call $~lib/array/Array#unshift + drop + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 231 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 232 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 41 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 233 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 234 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 235 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 236 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 4 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 237 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#shift + global.set $std/array/i + global.get $std/array/i + i32.const 41 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 246 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 247 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 248 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 249 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 250 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 251 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 252 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + global.set $std/array/i + global.get $std/array/i + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 256 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 257 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 258 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 259 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 260 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 261 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#reverse + call $~lib/rt/pure/__release + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 269 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 270 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 271 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 272 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 273 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 44 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 44 + i32.const 0 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 283 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 42 + i32.const 0 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 286 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 45 + i32.const 0 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 289 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const 100 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 292 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const -100 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 295 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const -2 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 298 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const -4 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 301 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const 0 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 304 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const 1 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 307 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const 2 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 310 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 9 + i32.const 2208 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $22 + f32.const nan:0x400000 + i32.const 0 + call $~lib/array/Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 312 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 3 + i32.const 10 + i32.const 2240 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $23 + f64.const nan:0x8000000000000 + i32.const 0 + call $~lib/array/Array#indexOf + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 313 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $22 + call $~lib/rt/pure/__release + local.get $23 + call $~lib/rt/pure/__release + global.get $std/array/arr + i32.const 44 + i32.const 0 + call $~lib/array/Array#includes + local.set $23 + local.get $23 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 320 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 42 + i32.const 0 + call $~lib/array/Array#includes + local.set $23 + local.get $23 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 45 + i32.const 0 + call $~lib/array/Array#includes + local.set $23 + local.get $23 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 326 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const 100 + call $~lib/array/Array#includes + local.set $23 + local.get $23 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 329 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const -100 + call $~lib/array/Array#includes + local.set $23 + local.get $23 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 332 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const -2 + call $~lib/array/Array#includes + local.set $23 + local.get $23 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 335 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const -4 + call $~lib/array/Array#includes + local.set $23 + local.get $23 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 338 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const 0 + call $~lib/array/Array#includes + local.set $23 + local.get $23 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 341 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const 1 + call $~lib/array/Array#includes + local.set $23 + local.get $23 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const 2 + call $~lib/array/Array#includes + local.set $23 + local.get $23 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 347 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 9 + i32.const 2272 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $25 + f32.const nan:0x400000 + i32.const 0 + call $~lib/array/Array#includes + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 349 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 3 + i32.const 10 + i32.const 2304 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $20 + f64.const nan:0x8000000000000 + i32.const 0 + call $~lib/array/Array#includes + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 350 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + i32.const 1 + call $~lib/array/Array#splice + call $~lib/rt/pure/__release + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 354 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 355 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 356 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 357 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $25 + call $~lib/rt/pure/__release + local.get $20 + call $~lib/rt/pure/__release + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2336 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $25 + local.get $25 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#splice + local.tee $20 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2384 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $22 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 364 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $25 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 2432 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $21 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 365 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2448 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $24 + local.get $25 + call $~lib/rt/pure/__release + local.get $24 + local.set $25 + local.get $25 + i32.const 0 + i32.const 0 + call $~lib/array/Array#splice + local.tee $24 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 2496 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $23 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 368 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $25 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2512 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $19 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 369 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2560 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $3 + local.get $25 + call $~lib/rt/pure/__release + local.get $3 + local.set $25 + local.get $25 + i32.const 2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#splice + local.tee $3 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 2608 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $18 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 372 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $25 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 2640 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $17 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 373 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2672 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $2 + local.get $25 + call $~lib/rt/pure/__release + local.get $2 + local.set $25 + local.get $25 + i32.const 2 + i32.const 2 + call $~lib/array/Array#splice + local.tee $2 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 2720 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $16 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 376 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $25 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 2752 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $15 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 377 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2784 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $0 + local.get $25 + call $~lib/rt/pure/__release + local.get $0 + local.set $25 + local.get $25 + i32.const 0 + i32.const 1 + call $~lib/array/Array#splice + local.tee $0 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 2832 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $14 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 380 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $25 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 2864 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $13 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 381 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2896 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $4 + local.get $25 + call $~lib/rt/pure/__release + local.get $4 + local.set $25 + local.get $25 + i32.const -1 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#splice + local.tee $4 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 2944 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $12 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 384 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $25 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 2976 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $11 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 385 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3008 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $1 + local.get $25 + call $~lib/rt/pure/__release + local.get $1 + local.set $25 + local.get $25 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#splice + local.tee $1 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 3056 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $10 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $25 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 3088 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3120 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $5 + local.get $25 + call $~lib/rt/pure/__release + local.get $5 + local.set $25 + local.get $25 + i32.const -2 + i32.const 1 + call $~lib/array/Array#splice + local.tee $5 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 3168 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $25 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 3200 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3232 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $6 + local.get $25 + call $~lib/rt/pure/__release + local.get $6 + local.set $25 + local.get $25 + i32.const -7 + i32.const 1 + call $~lib/array/Array#splice + local.tee $6 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 3280 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $27 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 396 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $25 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 3312 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $28 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 397 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3344 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $26 + local.get $25 + call $~lib/rt/pure/__release + local.get $26 + local.set $25 + local.get $25 + i32.const -2 + i32.const -1 + call $~lib/array/Array#splice + local.tee $26 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 3392 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $30 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 400 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $25 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3408 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $31 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 401 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3456 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $29 + local.get $25 + call $~lib/rt/pure/__release + local.get $29 + local.set $25 + local.get $25 + i32.const 1 + i32.const -2 + call $~lib/array/Array#splice + local.tee $29 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 3504 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $33 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 404 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $25 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3520 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $34 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 405 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3568 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $32 + local.get $25 + call $~lib/rt/pure/__release + local.get $32 + local.set $25 + local.get $25 + i32.const 4 + i32.const 0 + call $~lib/array/Array#splice + local.tee $32 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 3616 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $36 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 408 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $25 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3632 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $37 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 409 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3680 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $35 + local.get $25 + call $~lib/rt/pure/__release + local.get $35 + local.set $25 + local.get $25 + i32.const 7 + i32.const 0 + call $~lib/array/Array#splice + local.tee $35 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 3728 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $39 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 412 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $25 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3744 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $40 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3792 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $38 + local.get $25 + call $~lib/rt/pure/__release + local.get $38 + local.set $25 + local.get $25 + i32.const 7 + i32.const 5 + call $~lib/array/Array#splice + local.tee $38 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 3840 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $42 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $25 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3856 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $43 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.const 8 + i32.const 3904 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $45 + local.get $45 + i32.const 1 + i32.const 2 + call $~lib/array/Array#splice + local.set $46 + local.get $46 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 421 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $45 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 422 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $44 + local.get $44 + i32.load offset=4 + local.set $41 + local.get $41 + i32.const 0 + i32.const 1 + call $std/array/Ref#constructor + i32.store + local.get $41 + i32.const 0 + i32.const 2 + call $std/array/Ref#constructor + i32.store offset=4 + local.get $41 + i32.const 0 + i32.const 3 + call $std/array/Ref#constructor + i32.store offset=8 + local.get $41 + i32.const 0 + i32.const 4 + call $std/array/Ref#constructor + i32.store offset=12 + local.get $41 + i32.const 0 + i32.const 5 + call $std/array/Ref#constructor + i32.store offset=16 + local.get $44 + local.set $44 + local.get $45 + call $~lib/rt/pure/__release + local.get $44 + local.set $45 + local.get $45 + i32.const 2 + i32.const 2 + call $~lib/array/Array#splice + local.set $41 + local.get $46 + call $~lib/rt/pure/__release + local.get $41 + local.set $46 + local.get $46 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 427 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $46 + i32.const 0 + call $~lib/array/Array#__get + local.tee $41 + i32.load + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 428 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $46 + i32.const 1 + call $~lib/array/Array#__get + local.tee $44 + i32.load + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 429 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $45 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 431 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $45 + i32.const 0 + call $~lib/array/Array#__get + local.tee $47 + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 432 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $45 + i32.const 1 + call $~lib/array/Array#__get + local.tee $48 + i32.load + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 433 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $45 + i32.const 2 + call $~lib/array/Array#__get + local.tee $49 + i32.load + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 434 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 11 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $50 + local.get $50 + i32.load offset=4 + local.set $51 + local.get $51 + i32.const 0 + i32.const 1 + call $std/array/Ref#constructor + i32.store + local.get $51 + i32.const 0 + call $~lib/rt/pure/__retain + i32.store offset=4 + local.get $51 + i32.const 0 + i32.const 2 + call $std/array/Ref#constructor + i32.store offset=8 + local.get $50 + local.set $52 + local.get $52 + i32.const 0 + i32.const 1 + call $~lib/array/Array#splice + local.set $53 + local.get $53 + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 439 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $53 + i32.const 0 + call $~lib/array/Array#__get + local.tee $51 + local.tee $50 + if (result i32) + local.get $50 + else + i32.const 0 + i32.const 288 + i32.const 440 + i32.const 10 + call $~lib/builtins/abort + unreachable + end + i32.load + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 440 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $52 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 442 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $52 + i32.const 0 + call $~lib/array/Array#__get + local.tee $50 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 443 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $52 + i32.const 1 + call $~lib/array/Array#__get + local.tee $54 + local.tee $55 + if (result i32) + local.get $55 + else + i32.const 0 + i32.const 288 + i32.const 444 + i32.const 10 + call $~lib/builtins/abort + unreachable + end + i32.load + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 444 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $25 + call $~lib/rt/pure/__release + local.get $20 + call $~lib/rt/pure/__release + local.get $22 + call $~lib/rt/pure/__release + local.get $21 + call $~lib/rt/pure/__release + local.get $24 + call $~lib/rt/pure/__release + local.get $23 + call $~lib/rt/pure/__release + local.get $19 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $18 + call $~lib/rt/pure/__release + local.get $17 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $16 + call $~lib/rt/pure/__release + local.get $15 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $14 + call $~lib/rt/pure/__release + local.get $13 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $12 + call $~lib/rt/pure/__release + local.get $11 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $27 + call $~lib/rt/pure/__release + local.get $28 + call $~lib/rt/pure/__release + local.get $26 + call $~lib/rt/pure/__release + local.get $30 + call $~lib/rt/pure/__release + local.get $31 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + local.get $33 + call $~lib/rt/pure/__release + local.get $34 + call $~lib/rt/pure/__release + local.get $32 + call $~lib/rt/pure/__release + local.get $36 + call $~lib/rt/pure/__release + local.get $37 + call $~lib/rt/pure/__release + local.get $35 + call $~lib/rt/pure/__release + local.get $39 + call $~lib/rt/pure/__release + local.get $40 + call $~lib/rt/pure/__release + local.get $38 + call $~lib/rt/pure/__release + local.get $42 + call $~lib/rt/pure/__release + local.get $43 + call $~lib/rt/pure/__release + local.get $41 + call $~lib/rt/pure/__release + local.get $44 + call $~lib/rt/pure/__release + local.get $47 + call $~lib/rt/pure/__release + local.get $48 + call $~lib/rt/pure/__release + local.get $49 + call $~lib/rt/pure/__release + local.get $51 + call $~lib/rt/pure/__release + local.get $50 + call $~lib/rt/pure/__release + local.get $54 + call $~lib/rt/pure/__release + global.get $std/array/arr + i32.const 0 + i32.const 0 + call $~lib/array/Array#__set + global.get $std/array/arr + i32.const 1 + i32.const 1 + call $~lib/array/Array#__set + global.get $std/array/arr + i32.const 2 + i32.const 2 + call $~lib/array/Array#__set + global.get $std/array/arr + i32.const 3 + i32.const 3 + call $~lib/array/Array#__set + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 457 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 460 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 463 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 4 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 471 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 472 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 5 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 474 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + i32.const 6 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 487 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 488 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 7 + call $~lib/array/Array#every + local.set $54 + local.get $54 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 498 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 8 + call $~lib/array/Array#every + local.set $54 + local.get $54 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 501 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 9 + call $~lib/array/Array#every + local.set $54 + local.get $54 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 509 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 510 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 10 + call $~lib/array/Array#every + local.set $54 + local.get $54 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 512 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + i32.const 11 + call $~lib/array/Array#every + local.set $54 + local.get $54 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 525 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 526 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 12 + call $~lib/array/Array#some + local.set $54 + local.get $54 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 536 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 13 + call $~lib/array/Array#some + local.set $54 + local.get $54 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 539 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 14 + call $~lib/array/Array#some + local.set $54 + local.get $54 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 547 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 548 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 15 + call $~lib/array/Array#some + local.set $54 + local.get $54 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 550 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + i32.const 16 + call $~lib/array/Array#some + local.set $54 + local.get $54 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 563 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 564 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 17 + call $~lib/array/Array#forEach + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 18 + call $~lib/array/Array#forEach + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 19 + call $~lib/array/Array#forEach + global.get $std/array/i + i32.const 406 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 588 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 20 + call $~lib/array/Array#forEach + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 602 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 21 + call $~lib/array/Array#forEach + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $54 + loop $for-loop|0 + local.get $54 + i32.const 100 + i32.lt_s + local.set $50 + local.get $50 + if + global.get $std/array/arr + call $~lib/array/Array#pop + drop + local.get $54 + i32.const 1 + i32.add + local.set $54 + br $for-loop|0 + end + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 22 + call $~lib/array/Array#map + local.set $54 + local.get $54 + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 642 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $54 + i32.const 0 + call $~lib/array/Array#__get + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + f32.convert_i32_s + f32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 643 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 23 + call $~lib/array/Array#map + call $~lib/rt/pure/__release + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 652 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 653 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 24 + call $~lib/array/Array#map + call $~lib/rt/pure/__release + global.get $std/array/i + i32.const 406 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 660 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 25 + call $~lib/array/Array#map + call $~lib/rt/pure/__release + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 675 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 676 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + local.get $54 + call $~lib/rt/pure/__release + global.get $std/array/arr + i32.const 26 + call $~lib/array/Array#filter + local.set $54 + local.get $54 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 686 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 27 + call $~lib/array/Array#filter + call $~lib/rt/pure/__release + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 695 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 696 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 28 + call $~lib/array/Array#filter + call $~lib/rt/pure/__release + global.get $std/array/i + i32.const 406 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 703 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 29 + call $~lib/array/Array#filter + call $~lib/rt/pure/__release + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 718 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 719 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + local.get $54 + call $~lib/rt/pure/__release + global.get $std/array/arr + i32.const 30 + i32.const 0 + call $~lib/array/Array#reduce + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 729 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 31 + i32.const 4 + call $~lib/array/Array#reduce + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 733 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 32 + i32.const 0 + call $~lib/array/Array#reduce + local.set $54 + local.get $54 + i32.const 0 + i32.ne + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 736 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 33 + i32.const 0 + call $~lib/array/Array#reduce + local.set $54 + local.get $54 + i32.const 0 + i32.ne + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 739 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 34 + i32.const 0 + call $~lib/array/Array#reduce + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 747 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 748 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 35 + i32.const 0 + call $~lib/array/Array#reduce + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 750 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + i32.const 36 + i32.const 0 + call $~lib/array/Array#reduce + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 763 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 764 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 37 + i32.const 0 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 774 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 38 + i32.const 4 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 778 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 39 + i32.const 0 + call $~lib/array/Array#reduceRight + local.set $54 + local.get $54 + i32.const 0 + i32.ne + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 781 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 40 + i32.const 0 + call $~lib/array/Array#reduceRight + local.set $54 + local.get $54 + i32.const 0 + i32.ne + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 784 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 41 + i32.const 0 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 792 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 793 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 42 + i32.const 0 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 795 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + i32.const 43 + i32.const 0 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 808 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 809 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + call $~lib/bindings/Math/random + i64.reinterpret_f64 + call $~lib/math/NativeMath.seedRandom + i32.const 8 + i32.const 2 + i32.const 9 + i32.const 4272 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $50 + local.get $50 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#sort@varargs + call $~lib/rt/pure/__release + local.get $50 + i32.const 8 + i32.const 2 + i32.const 9 + i32.const 4320 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $51 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 898 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 8 + i32.const 3 + i32.const 10 + i32.const 4368 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $49 + local.get $49 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#sort@varargs + call $~lib/rt/pure/__release + local.get $49 + i32.const 8 + i32.const 3 + i32.const 10 + i32.const 4448 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $48 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 902 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4528 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $47 + local.get $47 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#sort@varargs + call $~lib/rt/pure/__release + local.get $47 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 4576 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $44 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 906 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 4624 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $41 + local.get $41 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#sort@varargs + call $~lib/rt/pure/__release + local.get $41 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 4672 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $43 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 910 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 4720 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $42 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 4736 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $38 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 4768 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $40 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 4800 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $39 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 4832 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $35 + i32.const 64 + call $std/array/createReverseOrderedArray + local.set $54 + i32.const 128 + call $std/array/createReverseOrderedArray + local.set $37 + i32.const 1024 + call $std/array/createReverseOrderedArray + local.set $36 + i32.const 10000 + call $std/array/createReverseOrderedArray + local.set $32 + i32.const 512 + call $std/array/createRandomOrderedArray + local.set $34 + local.get $42 + call $std/array/assertSortedDefault + local.get $38 + call $std/array/assertSortedDefault + local.get $38 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 4864 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $29 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 930 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $40 + call $std/array/assertSortedDefault + local.get $40 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 4896 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $31 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 933 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $39 + call $std/array/assertSortedDefault + local.get $39 + local.get $35 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 936 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $54 + call $std/array/assertSortedDefault + local.get $54 + local.get $35 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 939 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $37 + call $std/array/assertSortedDefault + local.get $37 + local.get $35 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 942 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $36 + call $std/array/assertSortedDefault + local.get $36 + local.get $35 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 945 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $32 + call $std/array/assertSortedDefault + local.get $32 + local.get $35 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 948 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $34 + call $std/array/assertSortedDefault + local.get $50 + call $~lib/rt/pure/__release + local.get $51 + call $~lib/rt/pure/__release + local.get $49 + call $~lib/rt/pure/__release + local.get $48 + call $~lib/rt/pure/__release + local.get $47 + call $~lib/rt/pure/__release + local.get $44 + call $~lib/rt/pure/__release + local.get $41 + call $~lib/rt/pure/__release + local.get $43 + call $~lib/rt/pure/__release + local.get $42 + call $~lib/rt/pure/__release + local.get $38 + call $~lib/rt/pure/__release + local.get $40 + call $~lib/rt/pure/__release + local.get $39 + call $~lib/rt/pure/__release + local.get $35 + call $~lib/rt/pure/__release + local.get $54 + call $~lib/rt/pure/__release + local.get $37 + call $~lib/rt/pure/__release + local.get $36 + call $~lib/rt/pure/__release + local.get $32 + call $~lib/rt/pure/__release + local.get $34 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + local.get $31 + call $~lib/rt/pure/__release + i32.const 64 + call $std/array/createRandomOrderedArray + local.set $31 + i32.const 257 + call $std/array/createRandomOrderedArray + local.set $29 + local.get $31 + i32.const 49 + call $std/array/assertSorted + local.get $31 + i32.const 50 + call $std/array/assertSorted + local.get $29 + i32.const 51 + call $std/array/assertSorted + local.get $29 + i32.const 52 + call $std/array/assertSorted + local.get $31 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + i32.const 2 + call $std/array/createReverseOrderedNestedArray + local.set $29 + local.get $29 + i32.const 53 + call $std/array/assertSorted<~lib/array/Array> + local.get $29 + call $~lib/rt/pure/__release + i32.const 512 + call $std/array/createReverseOrderedElementsArray + local.set $29 + local.get $29 + i32.const 54 + call $std/array/assertSorted> + local.get $29 + call $~lib/rt/pure/__release + i32.const 7 + i32.const 2 + i32.const 15 + i32.const 5072 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $31 + i32.const 7 + i32.const 2 + i32.const 15 + i32.const 5120 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $34 + local.get $31 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $std/array/assertSorted<~lib/string/String | null>@varargs + local.get $31 + local.get $34 + i32.const 0 + call $std/array/isArraysEqual<~lib/string/String | null> + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 985 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 400 + call $std/array/createRandomStringArray + local.set $29 + local.get $29 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $std/array/assertSorted<~lib/string/String>@varargs + local.get $31 + call $~lib/rt/pure/__release + local.get $34 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + i32.const 2 + i32.const 0 + i32.const 17 + i32.const 5200 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $34 + i32.const 5296 + call $~lib/array/Array#join + local.tee $29 + i32.const 5328 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 994 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 5376 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $32 + i32.const 5056 + call $~lib/array/Array#join + local.tee $31 + i32.const 7168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 995 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 7 + i32.const 7200 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $37 + i32.const 7232 + call $~lib/array/Array#join + local.tee $36 + i32.const 7168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 996 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 7264 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $35 + i32.const 7296 + call $~lib/array/Array#join + local.tee $54 + i32.const 7328 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 997 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 6 + i32.const 3 + i32.const 10 + i32.const 7392 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $40 + i32.const 7456 + call $~lib/array/Array#join + local.tee $39 + i32.const 8544 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 998 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 15 + i32.const 8672 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $42 + i32.const 5056 + call $~lib/array/Array<~lib/string/String | null>#join + local.tee $38 + i32.const 8640 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 999 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 11 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $43 + local.get $43 + i32.load offset=4 + local.set $41 + local.get $41 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + i32.store + local.get $41 + i32.const 0 + call $~lib/rt/pure/__retain + i32.store offset=4 + local.get $41 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + i32.store offset=8 + local.get $43 + local.set $41 + local.get $41 + i32.const 5296 + call $~lib/array/Array#join + local.tee $43 + i32.const 8752 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1001 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $44 + local.get $44 + i32.load offset=4 + local.set $47 + local.get $47 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + i32.store + local.get $47 + i32.const 0 + i32.const 0 + call $std/array/Ref#constructor + i32.store offset=4 + local.get $44 + local.set $47 + local.get $47 + i32.const 5296 + call $~lib/array/Array#join + local.tee $44 + i32.const 8832 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1004 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $34 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + local.get $32 + call $~lib/rt/pure/__release + local.get $31 + call $~lib/rt/pure/__release + local.get $37 + call $~lib/rt/pure/__release + local.get $36 + call $~lib/rt/pure/__release + local.get $35 + call $~lib/rt/pure/__release + local.get $54 + call $~lib/rt/pure/__release + local.get $40 + call $~lib/rt/pure/__release + local.get $39 + call $~lib/rt/pure/__release + local.get $42 + call $~lib/rt/pure/__release + local.get $38 + call $~lib/rt/pure/__release + local.get $41 + call $~lib/rt/pure/__release + local.get $43 + call $~lib/rt/pure/__release + local.get $47 + call $~lib/rt/pure/__release + local.get $44 + call $~lib/rt/pure/__release + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 8912 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $47 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 8928 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $43 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 8960 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $41 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 8992 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $38 + local.get $47 + call $~lib/array/Array#toString + local.tee $44 + i32.const 5056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1014 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $43 + call $~lib/array/Array#toString + local.tee $42 + i32.const 8640 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1015 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $41 + call $~lib/array/Array#toString + local.tee $39 + i32.const 9024 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1016 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $38 + call $~lib/array/Array#toString + local.tee $40 + i32.const 9056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1017 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 0 + i32.const 18 + i32.const 9088 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $35 + call $~lib/array/Array#toString + local.tee $54 + i32.const 9120 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1019 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 1 + i32.const 19 + i32.const 9152 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $37 + call $~lib/array/Array#toString + local.tee $36 + i32.const 9184 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1020 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 3 + i32.const 20 + i32.const 9232 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $32 + call $~lib/array/Array#toString + local.tee $31 + i32.const 9280 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1021 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + i32.const 3 + i32.const 21 + i32.const 9344 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $34 + call $~lib/array/Array#toString + local.tee $29 + i32.const 9392 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1022 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 7 + i32.const 2 + i32.const 15 + i32.const 9504 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $49 + local.get $49 + call $~lib/array/Array<~lib/string/String | null>#toString + local.tee $48 + i32.const 9552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1026 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + i32.const 2 + i32.const 15 + i32.const 9664 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $50 + call $~lib/array/Array<~lib/string/String | null>#toString + local.tee $51 + i32.const 9696 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1027 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + i32.const 12 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $33 + local.get $33 + i32.load offset=4 + local.set $30 + local.get $30 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 9728 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + i32.store + local.get $30 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 9760 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + i32.store offset=4 + local.get $33 + local.set $56 + local.get $56 + call $~lib/array/Array<~lib/array/Array>#toString + local.tee $30 + i32.const 9792 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1030 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + i32.const 22 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $33 + local.get $33 + i32.load offset=4 + local.set $26 + local.get $26 + i32.const 2 + i32.const 0 + i32.const 6 + i32.const 9824 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + i32.store + local.get $26 + i32.const 2 + i32.const 0 + i32.const 6 + i32.const 9856 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + i32.store offset=4 + local.get $33 + local.set $57 + local.get $57 + call $~lib/array/Array<~lib/array/Array>#toString + local.tee $26 + i32.const 9792 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1033 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 24 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $33 + local.get $33 + i32.load offset=4 + local.set $28 + local.get $28 + i32.const 1 + i32.const 2 + i32.const 23 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $27 + local.get $27 + i32.load offset=4 + local.set $6 + local.get $6 + i32.const 1 + i32.const 2 + i32.const 7 + i32.const 9888 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + i32.store + local.get $27 + i32.store + local.get $33 + local.set $58 + local.get $58 + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString + local.tee $28 + i32.const 8640 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1036 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $47 + call $~lib/rt/pure/__release + local.get $43 + call $~lib/rt/pure/__release + local.get $41 + call $~lib/rt/pure/__release + local.get $38 + call $~lib/rt/pure/__release + local.get $44 + call $~lib/rt/pure/__release + local.get $42 + call $~lib/rt/pure/__release + local.get $39 + call $~lib/rt/pure/__release + local.get $40 + call $~lib/rt/pure/__release + local.get $35 + call $~lib/rt/pure/__release + local.get $54 + call $~lib/rt/pure/__release + local.get $37 + call $~lib/rt/pure/__release + local.get $36 + call $~lib/rt/pure/__release + local.get $32 + call $~lib/rt/pure/__release + local.get $31 + call $~lib/rt/pure/__release + local.get $34 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + local.get $49 + call $~lib/rt/pure/__release + local.get $48 + call $~lib/rt/pure/__release + local.get $50 + call $~lib/rt/pure/__release + local.get $51 + call $~lib/rt/pure/__release + local.get $30 + call $~lib/rt/pure/__release + local.get $26 + call $~lib/rt/pure/__release + local.get $28 + call $~lib/rt/pure/__release + global.get $std/array/arr + call $~lib/rt/pure/__release + i32.const 4 + i32.const 2 + i32.const 12 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $28 + local.get $28 + i32.load offset=4 + local.set $26 + local.get $26 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 9920 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + i32.store + local.get $26 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 9952 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + i32.store offset=4 + local.get $26 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 9984 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + i32.store offset=8 + local.get $26 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 10016 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + i32.store offset=12 + local.get $28 + local.set $59 + local.get $59 + call $~lib/array/Array<~lib/array/Array>#flat + local.set $60 + local.get $60 + call $~lib/array/Array#get:length + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1047 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $26 + loop $for-loop|1 + local.get $26 + i32.const 10 + i32.lt_s + local.set $28 + local.get $28 + if + local.get $60 + local.get $26 + call $~lib/array/Array#__get + local.get $26 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1049 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $26 + i32.const 1 + i32.add + local.set $26 + br $for-loop|1 + end + end + i32.const 4 + i32.const 2 + i32.const 25 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $26 + local.get $26 + i32.load offset=4 + local.set $28 + local.get $28 + i32.const 1 + i32.const 2 + i32.const 15 + i32.const 10080 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + i32.store + local.get $28 + i32.const 3 + i32.const 2 + i32.const 15 + i32.const 10176 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + i32.store offset=4 + local.get $28 + i32.const 3 + i32.const 2 + i32.const 15 + i32.const 10304 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + i32.store offset=8 + local.get $28 + i32.const 1 + i32.const 2 + i32.const 15 + i32.const 10368 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + i32.store offset=12 + local.get $26 + local.set $61 + local.get $61 + call $~lib/array/Array<~lib/array/Array<~lib/string/String | null>>#flat + local.set $62 + i32.const 8 + i32.const 2 + i32.const 15 + i32.const 10400 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $63 + local.get $62 + call $~lib/array/Array<~lib/string/String | null>#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1055 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $26 + loop $for-loop|2 + local.get $26 + local.get $63 + call $~lib/array/Array<~lib/string/String | null>#get:length + i32.lt_s + local.set $28 + local.get $28 + if + local.get $62 + local.get $26 + call $~lib/array/Array<~lib/string/String | null>#__get + local.tee $30 + local.get $63 + local.get $26 + call $~lib/array/Array<~lib/string/String | null>#__get + local.tee $51 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1057 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $30 + call $~lib/rt/pure/__release + local.get $51 + call $~lib/rt/pure/__release + local.get $26 + i32.const 1 + i32.add + local.set $26 + br $for-loop|2 + end + end + i32.const 2 + i32.const 2 + i32.const 12 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $26 + local.get $26 + i32.load offset=4 + local.set $28 + local.get $28 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 10448 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + i32.store + local.get $28 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 10464 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + i32.store offset=4 + local.get $26 + local.set $28 + local.get $28 + call $~lib/array/Array<~lib/array/Array>#flat + local.tee $26 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 1061 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $28 + call $~lib/rt/pure/__release + local.get $26 + call $~lib/rt/pure/__release + local.get $45 + call $~lib/rt/pure/__release + local.get $46 + call $~lib/rt/pure/__release + local.get $52 + call $~lib/rt/pure/__release + local.get $53 + call $~lib/rt/pure/__release + local.get $56 + call $~lib/rt/pure/__release + local.get $57 + call $~lib/rt/pure/__release + local.get $58 + call $~lib/rt/pure/__release + local.get $59 + call $~lib/rt/pure/__release + local.get $60 + call $~lib/rt/pure/__release + local.get $61 + call $~lib/rt/pure/__release + local.get $62 + call $~lib/rt/pure/__release + local.get $63 + call $~lib/rt/pure/__release + ) + (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.get $0 + i32.eqz + if + i32.const 16 + i32.const 7 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + i32.const 0 + i32.store + 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 1073741808 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 57 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + local.set $2 + local.get $2 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $3 + local.get $3 + i32.const 0 + local.get $2 + call $~lib/memory/memory.fill + local.get $0 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $6 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + local.set $5 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + i32.store + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=12 + local.get $0 + ) + (func $std/array/ArrayU32#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.eqz + if + i32.const 16 + i32.const 26 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + local.get $1 + call $~lib/array/Array#constructor + local.set $0 + local.get $0 + ) + (func $~lib/array/Array#get:buffer (param $0 i32) (result i32) + local.get $0 + i32.load + call $~lib/rt/pure/__retain + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load + local.tee $2 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $1 + i32.store + ) + (func $~lib/array/Array#get:dataStart (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + ) + (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#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + ) + (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#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.store offset=12 + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=12 + local.set $2 + i32.const 0 + drop + 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#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 + 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 + 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 $~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 + 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 + i32.const 3 + global.set $~argumentsLength + local.get $1 + 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 $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop + 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 (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 496 + i32.const 80 + i32.const 120 + 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 + i32.store offset=12 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (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 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#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 + 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 + i32.store offset=12 + local.get $3 + ) + (func $~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 1073741808 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 229 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 2 + i32.const 7 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $5 + 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 + local.get $1 + call $~lib/rt/pure/__release + local.get $8 + ) + (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 $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + 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 $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + 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 $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + 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 $6 + local.get $5 + local.get $8 + i32.sub + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + local.set $11 + i32.const 0 + drop + 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 + call $~lib/rt/pure/__retain + ) + (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 976 + i32.const 80 + i32.const 300 + 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 + i32.store offset=12 + 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 $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 + 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/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) + i32.const 0 + i32.const 2 + i32.const 7 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $2 + 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 + 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 + ) + (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 976 + i32.const 80 + i32.const 361 + 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 + i32.store offset=12 + 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) + 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 + i32.const 3 + global.set $~argumentsLength + local.get $1 + 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 + 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 + i32.const 0 + drop + local.get $3 + local.get $1 + i32.store + local.get $0 + local.get $2 + i32.store offset=12 + local.get $2 + ) + (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.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 $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + end + local.set $1 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $2 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + 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 $3 + local.get $3 + i32.const 2 + i32.const 7 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $6 + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $8 + i32.const 0 + drop + local.get $7 + local.get $8 + local.get $3 + i32.const 2 + i32.shl + call $~lib/memory/memory.copy + local.get $6 + ) + (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.get $0 + i32.load offset=12 + 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 $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + 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 $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + local.get $2 + i32.const 2 + i32.const 7 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $6 + 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 + i32.store offset=12 + local.get $6 + ) + (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 + call $~lib/rt/pure/__retain + ) + (func $~lib/array/Array#flat (param $0 i32) (result i32) + i32.const 0 + i32.eqz + drop + i32.const 10480 + i32.const 80 + i32.const 504 + i32.const 7 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (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.get $0 + i32.eqz + if + i32.const 16 + i32.const 6 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + i32.const 0 + i32.store + 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 1073741808 + i32.const 0 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 57 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.shl + local.set $2 + local.get $2 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $3 + local.get $3 + i32.const 0 + local.get $2 + call $~lib/memory/memory.fill + local.get $0 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $6 + i32.ne + if + local.get $5 + call $~lib/rt/pure/__retain + local.set $5 + local.get $6 + call $~lib/rt/pure/__release + end + local.get $5 + i32.store + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=12 + local.get $0 + ) + (func $std/array/ArrayU8#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.eqz + if + i32.const 16 + i32.const 27 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + local.get $1 + call $~lib/array/Array#constructor + local.set $0 + local.get $0 + ) + (func $~lib/array/Array#get:buffer (param $0 i32) (result i32) + local.get $0 + i32.load + call $~lib/rt/pure/__retain + ) + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load + local.tee $2 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $1 + i32.store + ) + (func $~lib/array/Array#get:dataStart (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + ) + (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#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + ) + (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#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.store offset=12 + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=12 + local.set $2 + i32.const 0 + drop + local.get $0 + local.get $1 + i32.const 0 + call $~lib/array/ensureSize + local.get $0 + local.get $1 + i32.store offset=12 + ) + (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 + 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 + 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 $~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 + 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 + 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 $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + i32.const 0 + drop + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + local.get $2 + i32.store8 + ) + (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 496 + i32.const 80 + i32.const 120 + 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 + i32.store offset=12 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (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#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 + 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 + i32.store offset=12 + local.get $3 + ) + (func $~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 1073741808 + i32.const 0 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 229 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $5 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $2 + i32.const 0 + 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 0 + i32.shl + call $~lib/memory/memory.copy + local.get $5 + local.set $8 + local.get $1 + call $~lib/rt/pure/__release + local.get $8 + ) + (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 $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + 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 $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + 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 $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + 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 $6 + local.get $5 + local.get $8 + i32.sub + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + local.set $11 + i32.const 0 + drop + 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 + call $~lib/rt/pure/__retain + ) + (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 976 + i32.const 80 + i32.const 300 + 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 + i32.store offset=12 + 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 $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 + 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/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) + i32.const 0 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $2 + 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 + 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 + ) + (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 976 + i32.const 80 + i32.const 361 + 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 + i32.store offset=12 + 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) + 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 + i32.const 3 + global.set $~argumentsLength + local.get $1 + 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 + 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 + i32.const 0 + drop + local.get $3 + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.store offset=12 + local.get $2 + ) + (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.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 $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + end + local.set $1 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $2 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + 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 $3 + local.get $3 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $6 + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + local.set $8 + i32.const 0 + drop + local.get $7 + local.get $8 + local.get $3 + i32.const 0 + i32.shl + call $~lib/memory/memory.copy + local.get $6 + ) + (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.get $0 + i32.load offset=12 + 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 $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + 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 $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + local.get $2 + i32.const 0 + i32.const 6 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $6 + 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 0 + i32.shl + i32.add + local.set $9 + local.get $7 + local.get $9 + local.get $2 + i32.const 0 + 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 0 + i32.shl + i32.add + local.get $3 + local.get $10 + i32.sub + i32.const 0 + i32.shl + call $~lib/memory/memory.copy + end + local.get $0 + local.get $3 + local.get $2 + i32.sub + i32.store offset=12 + local.get $6 + ) + (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 + call $~lib/rt/pure/__retain + ) + (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 + 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 + i32.const 0 + 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 + 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 + 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#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 + call $~lib/rt/pure/__retain + 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 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + 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 + call $~lib/rt/pure/__retain + 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 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 + call $~lib/rt/pure/__retain + ) + (func $~lib/array/Array#flat (param $0 i32) (result i32) + i32.const 0 + i32.eqz + drop + i32.const 10480 + i32.const 80 + i32.const 504 + i32.const 7 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $std/array/ArrayStr#constructor (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.eqz + if + i32.const 16 + i32.const 28 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#constructor + local.set $0 + local.get $0 + ) + (func $~lib/array/Array<~lib/string/String>#get:buffer (param $0 i32) (result i32) + local.get $0 + i32.load + call $~lib/rt/pure/__retain + ) + (func $~lib/array/Array<~lib/string/String>#set:buffer (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $0 + i32.load + local.tee $2 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + drop + local.get $2 + call $~lib/rt/pure/__release + end + local.get $1 + i32.store + ) + (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>#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>#get:byteLength (param $0 i32) (result i32) + local.get $0 + i32.load offset=8 + ) + (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>#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.store offset=12 + ) + (func $~lib/array/Array<~lib/string/String>#set:length (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=12 + local.set $2 + i32.const 1 + drop + local.get $2 + local.get $1 + i32.gt_s + if + local.get $0 + i32.load offset=4 + local.set $3 + local.get $3 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $4 + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.set $5 + loop $do-continue|0 + local.get $4 + i32.load + call $~lib/rt/pure/__release + local.get $4 + i32.const 4 + i32.add + local.tee $4 + local.get $5 + i32.lt_u + local.set $6 + local.get $6 + br_if $do-continue|0 + end + else + local.get $0 + local.get $1 + i32.const 2 + call $~lib/array/ensureSize + end + local.get $0 + local.get $1 + i32.store offset=12 + ) + (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) + (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.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 + 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 $~lib/array/Array<~lib/string/String>#findIndex (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 + 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 + 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 $~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 $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + 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 $6 + local.get $5 + local.tee $7 + local.get $6 + local.get $7 + 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 $6 + local.get $6 + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $1 + local.get $7 + i32.ne + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + call $~lib/rt/pure/__retain + i32.store + local.get $7 + call $~lib/rt/pure/__release + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $0 + call $~lib/rt/pure/__retain + local.set $6 + local.get $1 + call $~lib/rt/pure/__release + local.get $6 + ) + (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.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + 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 2 + i32.shl + i32.add + i32.load + local.get $1 + call $~lib/string/String.__eq + if + local.get $2 + local.set $5 + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/array/Array<~lib/string/String>#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return + ) + (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) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=12 + local.set $3 + local.get $3 + i32.const 0 + i32.eq + if + i32.const -1 + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + 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 $5 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + local.set $4 + local.get $4 + if + local.get $5 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + call $~lib/string/String.__eq + if + local.get $2 + local.set $6 + local.get $1 + call $~lib/rt/pure/__release + local.get $6 + return + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + 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 $4 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + call $~lib/rt/pure/__retain + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + local.get $3 + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/array/Array<~lib/string/String>#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + local.get $2 + local.get $3 + i32.add + local.set $4 + local.get $4 + i32.const 1073741808 + i32.const 2 + i32.shr_u + i32.gt_u + if + i32.const 32 + i32.const 80 + i32.const 229 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 2 + i32.const 16 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $5 + local.get $5 + i32.load offset=4 + local.set $6 + local.get $2 + i32.const 2 + i32.shl + local.set $7 + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $8 + i32.const 0 + local.set $9 + loop $for-loop|0 + local.get $9 + local.get $7 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $8 + local.get $9 + i32.add + i32.load + local.set $11 + local.get $6 + local.get $9 + i32.add + local.get $11 + call $~lib/rt/pure/__retain + i32.store + local.get $9 + i32.const 4 + i32.add + local.set $9 + br $for-loop|0 + end + end + local.get $6 + local.get $7 + i32.add + local.set $6 + local.get $1 + i32.load offset=4 + local.set $9 + local.get $3 + i32.const 2 + i32.shl + local.set $10 + i32.const 0 + local.set $11 + loop $for-loop|1 + local.get $11 + local.get $10 + i32.lt_u + local.set $12 + local.get $12 + if + local.get $9 + local.get $11 + i32.add + i32.load + local.set $13 + local.get $6 + local.get $11 + i32.add + local.get $13 + call $~lib/rt/pure/__retain + i32.store + local.get $11 + i32.const 4 + i32.add + local.set $11 + br $for-loop|1 + end + end + local.get $5 + local.set $10 + local.get $1 + call $~lib/rt/pure/__release + local.get $10 + ) + (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 $12 i32) + (local $13 i32) + (local $14 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 $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + 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 $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + 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 $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + 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 $6 + local.get $5 + local.get $8 + i32.sub + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + local.set $11 + i32.const 1 + drop + local.get $9 + local.get $8 + i32.lt_s + if (result i32) + local.get $8 + local.get $9 + local.get $11 + i32.add + i32.lt_s + else + i32.const 0 + end + if + local.get $9 + local.get $11 + i32.const 1 + i32.sub + i32.add + local.set $9 + local.get $8 + local.get $11 + i32.const 1 + i32.sub + i32.add + local.set $8 + loop $while-continue|0 + local.get $11 + local.set $6 + local.get $6 + if + local.get $4 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $4 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $12 + local.get $12 + local.get $7 + i32.ne + if + local.get $4 + local.get $8 + i32.const 2 + i32.shl + i32.add + local.get $12 + call $~lib/rt/pure/__retain + i32.store + local.get $7 + call $~lib/rt/pure/__release + end + local.get $9 + i32.const 1 + i32.sub + local.set $9 + local.get $8 + i32.const 1 + i32.sub + local.set $8 + local.get $11 + i32.const 1 + i32.sub + local.set $11 + br $while-continue|0 + end + end + else + loop $while-continue|1 + local.get $11 + local.set $6 + local.get $6 + if + local.get $4 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $13 + local.get $4 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $14 + local.get $14 + local.get $13 + i32.ne + if + local.get $4 + local.get $8 + i32.const 2 + i32.shl + i32.add + local.get $14 + call $~lib/rt/pure/__retain + i32.store + local.get $13 + call $~lib/rt/pure/__release + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + local.get $8 + i32.const 1 + i32.add + local.set $8 + local.get $11 + i32.const 1 + i32.sub + local.set $11 + br $while-continue|1 + end + end + end + local.get $0 + call $~lib/rt/pure/__retain + ) + (func $~lib/array/Array<~lib/string/String>#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 976 + i32.const 80 + i32.const 300 + 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 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + local.get $1 + i32.store offset=12 + local.get $2 + ) + (func $~lib/array/Array<~lib/string/String>#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 $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 + 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/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) + i32.const 0 + i32.const 2 + i32.const 16 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $2 + 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 + call $~lib/rt/pure/__retain + local.set $6 + local.get $6 + local.get $3 + local.get $0 + i32.const 3 + global.set $~argumentsLength + local.get $1 + 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 $6 + call $~lib/rt/pure/__release + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + ) + (func $~lib/array/Array<~lib/string/String>#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 976 + i32.const 80 + i32.const 361 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + i32.load + call $~lib/rt/pure/__retain + 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 1 + 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 + i32.store offset=12 + local.get $3 + ) + (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) + 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 + i32.const 3 + global.set $~argumentsLength + local.get $1 + 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<~lib/string/String>#unshift (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + i32.const 1 + drop + local.get $3 + local.get $1 + call $~lib/rt/pure/__retain + i32.store + local.get $0 + local.get $2 + i32.store offset=12 + local.get $2 + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + ) + (func $~lib/array/Array<~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) + (local $8 i32) + (local $9 i32) + (local $10 i32) + 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 $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + end + local.set $1 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $2 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + 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 $3 + local.get $3 + i32.const 2 + i32.const 16 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $6 + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $8 + i32.const 1 + drop + i32.const 0 + local.set $4 + local.get $3 + i32.const 2 + i32.shl + local.set $5 + loop $while-continue|0 + local.get $4 + local.get $5 + i32.lt_u + local.set $9 + local.get $9 + if + local.get $8 + local.get $4 + i32.add + i32.load + local.set $10 + local.get $7 + local.get $4 + i32.add + local.get $10 + call $~lib/rt/pure/__retain + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $6 + ) + (func $~lib/array/Array<~lib/string/String>#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.get $0 + i32.load offset=12 + 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 $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + 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 $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $2 + local.get $2 + i32.const 2 + i32.const 16 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $6 + 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 + i32.store offset=12 + local.get $6 + ) + (func $~lib/array/Array<~lib/string/String>#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 + call $~lib/rt/pure/__retain + 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 + local.get $5 + call $~lib/rt/pure/__release + br $while-continue|0 + end + end + end + local.get $0 + call $~lib/rt/pure/__retain + ) + (func $~lib/array/Array<~lib/string/String>#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return + ) + (func $~lib/array/Array<~lib/string/String>#flat (param $0 i32) (result i32) + i32.const 0 + i32.eqz + drop + i32.const 10480 + i32.const 80 + i32.const 504 + i32.const 7 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array<~lib/string/String>#toString (param $0 i32) (result i32) + local.get $0 + i32.const 5296 + call $~lib/array/Array<~lib/string/String>#join + ) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (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/pure/__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/pure/__visit + ) + (func $~start + global.get $~started + if + return + else + i32.const 1 + global.set $~started + end + call $start:std/array + ) + (func $~lib/rt/pure/finalize (param $0 i32) + i32.const 0 + drop + global.get $~lib/rt/tlsf/ROOT + local.get $0 + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/rt/pure/decrement (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 268435455 + i32.and + local.set $2 + i32.const 1 + drop + local.get $0 + call $~lib/rt/rtrace/ondecrement + i32.const 1 + drop + local.get $0 + i32.load + i32.const 1 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 240 + i32.const 122 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 16 + i32.add + i32.const 1 + call $~lib/rt/__visit_members + i32.const 1 + drop + i32.const 1 + drop + local.get $1 + i32.const -2147483648 + i32.and + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 240 + i32.const 126 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/finalize + else + i32.const 1 + drop + local.get $2 + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 240 + i32.const 136 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + drop + local.get $0 + local.get $1 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $2 + i32.const 1 + i32.sub + i32.or + i32.store offset=4 + end + ) + (func $~lib/rt/pure/__collect + i32.const 1 + drop + return + ) + (func $~lib/rt/pure/__visit (param $0 i32) (param $1 i32) + local.get $0 + global.get $~lib/heap/__heap_base + i32.lt_u + if + return + end + i32.const 1 + drop + i32.const 1 + drop + local.get $1 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 240 + i32.const 69 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/array/Array#__visit_impl (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/pure/__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/pure/__visit + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/array/Array#__visit_impl (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/pure/__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/pure/__visit + ) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (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/pure/__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/pure/__visit + ) + (func $~lib/array/Array>#__visit_impl (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/pure/__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/pure/__visit + ) + (func $~lib/array/Array<~lib/string/String | null>#__visit_impl (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/pure/__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/pure/__visit + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/array/Array#__visit_impl (param $0 i32) (param $1 i32) + i32.const 0 + drop + local.get $0 + i32.load + local.get $1 + call $~lib/rt/pure/__visit + ) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (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/pure/__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/pure/__visit + ) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (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/pure/__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/pure/__visit + ) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl (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/pure/__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/pure/__visit + ) + (func $~lib/array/Array<~lib/array/Array<~lib/string/String | null>>#__visit_impl (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/pure/__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/pure/__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + (local $2 i32) + block $switch$1$default + block $switch$1$case$27 + block $switch$1$case$26 + block $switch$1$case$25 + block $switch$1$case$24 + block $switch$1$case$23 + block $switch$1$case$22 + block $switch$1$case$21 + block $switch$1$case$20 + block $switch$1$case$19 + block $switch$1$case$18 + block $switch$1$case$17 + block $switch$1$case$16 + block $switch$1$case$14 + block $switch$1$case$13 + block $switch$1$case$12 + block $switch$1$case$11 + block $switch$1$case$10 + block $switch$1$case$9 + block $switch$1$case$8 + block $switch$1$case$5 + block $switch$1$case$4 + block $switch$1$case$2 + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$2 $switch$1$case$4 $switch$1$case$8 $switch$1$case$9 $switch$1$case$10 $switch$1$case$11 $switch$1$case$12 $switch$1$case$13 $switch$1$case$14 $switch$1$case$2 $switch$1$case$16 $switch$1$case$17 $switch$1$case$18 $switch$1$case$19 $switch$1$case$20 $switch$1$case$21 $switch$1$case$22 $switch$1$case$23 $switch$1$case$24 $switch$1$case$25 $switch$1$case$26 $switch$1$case$27 $switch$1$case$9 $switch$1$case$8 $switch$1$case$18 $switch$1$default + end + return + end + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit + end + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array>#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String | null>#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array<~lib/string/String | null>>#__visit_impl + return + end + unreachable + ) + (func $~lib/array/Array#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 $~lib/array/Array#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/array/Array#join@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 5296 + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/array/Array#join + ) + (func $~lib/array/Array#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 $~lib/array/Array#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 $~lib/array/Array#sort@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 + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 1 + drop + i32.const 0 + if (result i32) + i32.const 1 + i32.const 4 + i32.le_u + else + i32.const 0 + end + drop + i32.const 57 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/array/Array#sort + ) + (func $~lib/array/Array#join@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 5296 + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/array/Array#join + ) + (func $~lib/array/Array<~lib/string/String>#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 $~lib/array/Array<~lib/string/String>#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/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.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + 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 $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $3 + local.get $1 + call $~lib/string/String#get:length + local.set $4 + local.get $3 + i32.eqz + if (result i32) + local.get $4 + i32.eqz + else + i32.const 0 + end + if + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $3 + i32.eqz + if + i32.const -1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $4 + i32.eqz + if + i32.const 1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $3 + local.tee $2 + local.get $4 + local.tee $5 + local.get $2 + local.get $5 + i32.lt_s + select + call $~lib/util/string/compareImpl + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/array/Array<~lib/string/String>#sort@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 + block $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.1 (result i32) + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + i32.const 58 + br $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.1 + end + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#sort + ) + (func $~lib/array/Array<~lib/string/String>#join@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 5296 + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#join + ) + (func $~setArgumentsLength (param $0 i32) + local.get $0 + global.set $~argumentsLength + ) +) From ad3b6b741f6b0033a4f6134d3d3d6cbefac7ab30 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Thu, 25 Jun 2020 13:22:39 +0300 Subject: [PATCH 4/4] move error description to constants --- std/assembly/array.ts | 4 ++-- std/assembly/util/error.ts | 4 ++++ tests/compiler/std/array.optimized.wat | 24 ++++++++++++------------ tests/compiler/std/array.untouched.wat | 4 ++-- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/std/assembly/array.ts b/std/assembly/array.ts index 8c85724ad4..d67fe683cf 100644 --- a/std/assembly/array.ts +++ b/std/assembly/array.ts @@ -4,7 +4,7 @@ import { BLOCK_MAXSIZE } from "./rt/common"; import { COMPARATOR, SORT } from "./util/sort"; import { joinBooleanArray, joinIntegerArray, joinFloatArray, joinStringArray, joinReferenceArray } from "./util/string"; import { idof, isArray as builtin_isArray } from "./builtins"; -import { E_INDEXOUTOFRANGE, E_INVALIDLENGTH, E_EMPTYARRAY, E_HOLEYARRAY } from "./util/error"; +import { E_INDEXOUTOFRANGE, E_INVALIDLENGTH, E_ILLEGALGENTYPE, E_EMPTYARRAY, E_HOLEYARRAY } from "./util/error"; /** Ensures that the given array has _at least_ the specified backing size. */ function ensureSize(array: usize, minSize: usize, alignLog2: u32): void { @@ -501,7 +501,7 @@ export class Array { flat(): T { if (!isArray()) { - throw new TypeError("Cannot call flat() on Array where T is not an Array."); + throw new TypeError(E_ILLEGALGENTYPE); } // Get the length and data start values var length = this.length_; diff --git a/std/assembly/util/error.ts b/std/assembly/util/error.ts index 20ce7f6d78..747067fc66 100644 --- a/std/assembly/util/error.ts +++ b/std/assembly/util/error.ts @@ -9,6 +9,10 @@ export const E_INDEXOUTOFRANGE: string = "Index out of range"; @lazy @inline export const E_INVALIDLENGTH: string = "Invalid length"; +// @ts-ignore: decorator +@lazy @inline +export const E_ILLEGALGENTYPE: string = "Illegal generic type"; + // @ts-ignore: decorator @lazy @inline export const E_EMPTYARRAY: string = "Array is empty"; diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 7cd6405492..d0fb8cf3d5 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -234,7 +234,7 @@ (data (i32.const 9952) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\90%\00\00\d0%\00\00\00\00\00\00\f0%\00\000&\00\00P&\00\00p&\00\00\b0&") (data (i32.const 10004) "\01") (data (i32.const 10020) "\01") - (data (i32.const 10032) "n\00\00\00\01\00\00\00\01\00\00\00n\00\00\00C\00a\00n\00n\00o\00t\00 \00c\00a\00l\00l\00 \00f\00l\00a\00t\00(\00)\00 \00o\00n\00 \00A\00r\00r\00a\00y\00<\00T\00>\00 \00w\00h\00e\00r\00e\00 \00T\00 \00i\00s\00 \00n\00o\00t\00 \00a\00n\00 \00A\00r\00r\00a\00y\00.") + (data (i32.const 10032) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00I\00l\00l\00e\00g\00a\00l\00 \00g\00e\00n\00e\00r\00i\00c\00 \00t\00y\00p\00e") (table $0 57 funcref) (elem (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|2 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|16 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|44 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|44 $start:std/array~anonymous|47 $start:std/array~anonymous|48 $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -340,7 +340,7 @@ (export "__setArgumentsLength" (func $~setArgumentsLength)) (func $~lib/rt/pure/__release (param $0 i32) local.get $0 - i32.const 10160 + i32.const 10088 i32.gt_u if local.get $0 @@ -929,11 +929,11 @@ if unreachable end - i32.const 10160 + i32.const 10096 local.tee $0 i32.const 0 i32.store - i32.const 11728 + i32.const 11664 i32.const 0 i32.store loop $for-loop|0 @@ -944,7 +944,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 10160 + i32.const 10096 i32.add i32.const 0 i32.store offset=4 @@ -962,7 +962,7 @@ i32.add i32.const 2 i32.shl - i32.const 10160 + i32.const 10096 i32.add i32.const 0 i32.store offset=96 @@ -980,13 +980,13 @@ br $for-loop|0 end end - i32.const 10160 - i32.const 11744 + i32.const 10096 + i32.const 11680 memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - i32.const 10160 + i32.const 10096 global.set $~lib/rt/tlsf/ROOT end local.get $0 @@ -1544,7 +1544,7 @@ (local $1 i32) (local $2 i32) local.get $0 - i32.const 10160 + i32.const 10088 i32.gt_u if local.get $0 @@ -2361,7 +2361,7 @@ local.get $2 call $~lib/memory/memory.copy local.get $1 - i32.const 10160 + i32.const 10088 i32.ge_u if local.get $1 @@ -19709,7 +19709,7 @@ ) (func $~lib/rt/pure/__visit (param $0 i32) local.get $0 - i32.const 10160 + i32.const 10088 i32.lt_u if return diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index d6b402c96b..5a771d6d80 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -235,7 +235,7 @@ (data (i32.const 10384) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00@\'\00\00\80\'\00\00\00\00\00\00\a0\'\00\00\e0\'\00\00\00(\00\00 (\00\00`(\00\00") (data (i32.const 10432) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 10448) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10464) "n\00\00\00\01\00\00\00\01\00\00\00n\00\00\00C\00a\00n\00n\00o\00t\00 \00c\00a\00l\00l\00 \00f\00l\00a\00t\00(\00)\00 \00o\00n\00 \00A\00r\00r\00a\00y\00<\00T\00>\00 \00w\00h\00e\00r\00e\00 \00T\00 \00i\00s\00 \00n\00o\00t\00 \00a\00n\00 \00A\00r\00r\00a\00y\00.\00") + (data (i32.const 10464) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00I\00l\00l\00e\00g\00a\00l\00 \00g\00e\00n\00e\00r\00i\00c\00 \00t\00y\00p\00e\00") (table $0 57 funcref) (elem (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|4 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|39 $start:std/array~anonymous|40 $start:std/array~anonymous|41 $start:std/array~anonymous|42 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $start:std/array~anonymous|43 $start:std/array~anonymous|44 $start:std/array~anonymous|45 $start:std/array~anonymous|46 $start:std/array~anonymous|47 $start:std/array~anonymous|48 $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -263,7 +263,7 @@ (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) (global $~lib/builtins/i64.MAX_VALUE i64 (i64.const 9223372036854775807)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/heap/__heap_base i32 (i32.const 10592)) + (global $~lib/heap/__heap_base i32 (i32.const 10520)) (global $std/array/ArrayU32 i32 (i32.const 26)) (global $std/array/ArrayU8 i32 (i32.const 27)) (global $std/array/ArrayStr i32 (i32.const 28))