diff --git a/src/module.ts b/src/module.ts index 9655c69b62..8060b32387 100644 --- a/src/module.ts +++ b/src/module.ts @@ -1488,12 +1488,13 @@ export class Module { passes.push("rse"); passes.push("vacuum"); } - if (usesARC) { - if (optimizeLevel < 3) { - passes.push("flatten"); - } - passes.push("post-assemblyscript"); - } + // FIXME: see issue #1288 + // if (usesARC) { + // if (optimizeLevel < 3) { + // passes.push("flatten"); + // } + // passes.push("post-assemblyscript"); + // } passes.push("optimize-instructions"); passes.push("inlining"); passes.push("dce"); diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index b74e0bf3f5..d45b086784 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -1,6 +1,6 @@ (module - (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_none (func)) @@ -1580,6 +1580,17 @@ end end ) + (func $~lib/rt/pure/__release (param $0 i32) + local.get $0 + i32.const 1564 + i32.gt_u + if + local.get $0 + i32.const 16 + i32.sub + call $~lib/rt/pure/decrement + end + ) (func $~lib/array/Array#push (param $0 i32) (local $1 i32) (local $2 i32) @@ -1587,13 +1598,16 @@ (local $4 i32) (local $5 i32) (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $1 i32.const 1116 i32.load local.tee $6 i32.const 1 i32.add local.tee $2 - local.set $1 + local.set $0 local.get $2 i32.const 1112 i32.load @@ -1602,7 +1616,7 @@ i32.shr_u i32.gt_u if - local.get $1 + local.get $0 i32.const 268435452 i32.gt_u if @@ -1620,28 +1634,28 @@ call $~lib/rt/tlsf/maybeInitialize local.get $4 call $~lib/rt/tlsf/checkUsedBlock - local.get $1 + local.get $0 i32.const 2 i32.shl local.tee $5 call $~lib/rt/tlsf/reallocateBlock i32.const 16 i32.add - local.tee $1 + local.tee $0 i32.add local.get $5 local.get $3 i32.sub call $~lib/memory/memory.fill - local.get $1 + local.get $0 local.get $4 i32.ne if i32.const 1104 - local.get $1 + local.get $0 i32.store i32.const 1108 - local.get $1 + local.get $0 i32.store end i32.const 1112 @@ -1654,12 +1668,14 @@ i32.const 2 i32.shl i32.add - local.get $0 + local.get $1 call $~lib/rt/pure/__retain i32.store i32.const 1116 local.get $2 i32.store + local.get $1 + call $~lib/rt/pure/__release ) (func $~start (local $0 i32) @@ -1688,14 +1704,7 @@ local.get $0 call $~lib/array/Array#push local.get $0 - i32.const 1564 - i32.gt_u - if - local.get $0 - i32.const 16 - i32.sub - call $~lib/rt/pure/decrement - end + call $~lib/rt/pure/__release ) (func $~lib/rt/pure/markGray (param $0 i32) (local $1 i32) diff --git a/tests/compiler/issues/1095.optimized.wat b/tests/compiler/issues/1095.optimized.wat index 8ed6140eec..0bc87f68c3 100644 --- a/tests/compiler/issues/1095.optimized.wat +++ b/tests/compiler/issues/1095.optimized.wat @@ -958,18 +958,22 @@ (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) call $~lib/rt/tlsf/maybeInitialize call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add call $~lib/rt/pure/__retain - local.tee $1 + local.tee $3 i32.const 1200 i32.store + local.get $3 + call $~lib/rt/pure/__retain + local.tee $1 + local.set $2 local.get $1 - local.tee $0 i32.load - local.tee $2 + local.tee $0 i32.eqz if i32.const 0 @@ -979,22 +983,24 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $0 + local.get $2 i32.load - local.tee $1 + local.tee $2 i32.ne if - local.get $2 + local.get $0 call $~lib/rt/pure/__retain - local.set $2 - local.get $1 + local.set $0 + local.get $2 call $~lib/rt/pure/__release end + local.get $1 local.get $0 - local.get $2 i32.store - local.get $0 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 call $~lib/rt/pure/__release ) (func $~lib/rt/pure/decrement (param $0 i32) diff --git a/tests/compiler/logical.optimized.wat b/tests/compiler/logical.optimized.wat index 6a5dcd493c..81b0ab9b0e 100644 --- a/tests/compiler/logical.optimized.wat +++ b/tests/compiler/logical.optimized.wat @@ -1,9 +1,9 @@ (module (type $i32_=>_none (func (param i32))) - (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_none (func)) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -891,22 +891,17 @@ call $~lib/rt/rtrace/onalloc local.get $1 ) - (func $logical/Obj#constructor (result i32) - (local $0 i32) + (func $~lib/rt/pure/__retain (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - call $~lib/rt/tlsf/maybeInitialize - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - local.tee $1 + local.get $0 i32.const 1232 i32.gt_u if - local.get $1 + local.get $0 i32.const 16 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 local.tee $2 i32.const -268435456 @@ -925,14 +920,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.const 1 i32.add i32.store offset=4 - local.get $0 + local.get $1 call $~lib/rt/rtrace/onincrement - local.get $0 + local.get $1 i32.load i32.const 1 i32.and @@ -945,7 +940,14 @@ unreachable end end - local.get $1 + local.get $0 + ) + (func $logical/Obj#constructor (result i32) + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain ) (func $~lib/rt/pure/__release (param $0 i32) local.get $0 @@ -958,16 +960,24 @@ call $~lib/rt/pure/decrement end ) - (func $~start - (local $0 i32) + (func $start:logical + (local $0 f64) (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 i32) + (local $5 i32) call $logical/Obj#constructor - local.tee $0 - if (result i32) + local.tee $4 + call $~lib/rt/pure/__retain + local.tee $2 + if i32.const 1 - else - i32.const 0 + local.set $1 end + local.get $2 + call $~lib/rt/pure/__release + local.get $1 i32.eqz if i32.const 0 @@ -978,12 +988,16 @@ unreachable end call $logical/Obj#constructor - local.tee $1 + local.tee $2 + call $~lib/rt/pure/__retain + local.tee $5 if (result i32) i32.const 1 else i32.const 0 end + local.get $5 + call $~lib/rt/pure/__release i32.eqz if i32.const 0 @@ -993,11 +1007,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $4 call $~lib/rt/pure/__release - local.get $1 + local.get $2 call $~lib/rt/pure/__release ) + (func $~start + call $start:logical + ) (func $~lib/rt/pure/decrement (param $0 i32) (local $1 i32) (local $2 i32) diff --git a/tests/compiler/managed-cast.optimized.wat b/tests/compiler/managed-cast.optimized.wat index 667d9c4940..218b948d15 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -977,6 +977,16 @@ call $~lib/rt/pure/decrement end ) + (func $managed-cast/testDowncastToNullable (param $0 i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + call $~lib/rt/pure/__retain + local.get $0 + call $~lib/rt/pure/__release + call $~lib/rt/pure/__release + ) (func $~lib/rt/__instanceof (param $0 i32) (result i32) local.get $0 i32.const 16 @@ -1016,9 +1026,13 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) call $managed-cast/Cat#constructor call $managed-cast/Cat#constructor local.tee $3 + call $~lib/rt/pure/__retain + local.tee $0 i32.eqz if i32.const 0 @@ -1028,12 +1042,18 @@ call $~lib/builtins/abort unreachable end + local.get $0 + call $~lib/rt/pure/__release call $managed-cast/Cat#constructor - local.set $4 + local.tee $4 + call $managed-cast/testDowncastToNullable call $managed-cast/Cat#constructor - local.set $5 + local.tee $5 + call $managed-cast/testDowncastToNullable call $managed-cast/Cat#constructor local.tee $6 + call $~lib/rt/pure/__retain + local.tee $0 call $~lib/rt/__instanceof i32.eqz if @@ -1044,18 +1064,24 @@ call $~lib/builtins/abort unreachable end + local.get $0 + call $~lib/rt/pure/__release call $managed-cast/Cat#constructor - local.tee $1 - local.set $0 + local.tee $7 + call $~lib/rt/pure/__retain + local.tee $0 + local.set $1 block $__inlined_func$managed-cast/testUpcastFromNullable block $folding-inner0 - local.get $1 + local.get $0 i32.eqz br_if $folding-inner0 - local.get $0 + local.get $1 call $~lib/rt/__instanceof i32.eqz br_if $folding-inner0 + local.get $0 + call $~lib/rt/pure/__release br $__inlined_func$managed-cast/testUpcastFromNullable end i32.const 0 @@ -1066,7 +1092,10 @@ unreachable end call $managed-cast/Cat#constructor - local.tee $0 + local.tee $8 + call $~lib/rt/pure/__retain + local.tee $1 + local.get $1 call $~lib/rt/__instanceof i32.eqz if @@ -1077,8 +1106,15 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/pure/__retain + local.get $1 + call $~lib/rt/pure/__release + call $~lib/rt/pure/__release call $managed-cast/Cat#constructor - local.tee $7 + local.tee $9 + call $~lib/rt/pure/__retain + local.tee $1 + local.get $1 call $~lib/rt/__instanceof i32.eqz if @@ -1089,6 +1125,10 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/pure/__retain + local.get $1 + call $~lib/rt/pure/__release + call $~lib/rt/pure/__release call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release @@ -1098,11 +1138,11 @@ call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release - local.get $1 + local.get $7 call $~lib/rt/pure/__release - local.get $0 + local.get $8 call $~lib/rt/pure/__release - local.get $7 + local.get $9 call $~lib/rt/pure/__release ) (func $~start diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index ef38fe6b69..5b2371b258 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -1116,10 +1116,18 @@ (func $~lib/util/string/compareImpl (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 + call $~lib/rt/pure/__retain + local.tee $4 + local.tee $3 i32.const 7 i32.and local.get $1 + call $~lib/rt/pure/__retain + local.tee $5 + local.tee $1 i32.const 7 i32.and i32.or @@ -1131,16 +1139,16 @@ select if loop $do-continue|0 - local.get $0 + local.get $3 i64.load local.get $1 i64.load i64.eq if - local.get $0 + local.get $3 i32.const 8 i32.add - local.set $0 + local.set $3 local.get $1 i32.const 8 i32.add @@ -1157,29 +1165,33 @@ end loop $while-continue|1 local.get $2 - local.tee $3 + local.tee $0 i32.const 1 i32.sub local.set $2 - local.get $3 + local.get $0 if - local.get $0 + local.get $3 i32.load16_u - local.tee $3 + local.tee $0 local.get $1 i32.load16_u - local.tee $4 + local.tee $6 i32.ne if - local.get $3 local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + local.get $6 i32.sub return end - local.get $0 + local.get $3 i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 i32.const 2 i32.add @@ -1187,14 +1199,26 @@ br $while-continue|1 end end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release i32.const 0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 local.get $1 + call $~lib/rt/pure/__retain + local.tee $1 i32.eq if + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 1 return end @@ -1217,8 +1241,16 @@ local.get $2 call $~lib/util/string/compareImpl i32.eqz + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release return end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 0 ) (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) @@ -1482,6 +1514,8 @@ ) (func $object-literal/testOmittedTypes (param $0 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load if i32.const 0 @@ -1631,9 +1665,13 @@ call $~lib/builtins/abort unreachable end + local.get $0 + call $~lib/rt/pure/__release ) (func $object-literal/testOmittedFoo (param $0 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load i32.const 1392 call $~lib/string/String.__eq @@ -1759,6 +1797,8 @@ call $~lib/builtins/abort unreachable end + local.get $0 + call $~lib/rt/pure/__release ) (func $start:object-literal (local $0 i32) @@ -1771,19 +1811,22 @@ i32.const 3 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.tee $3 + local.tee $1 i32.const 0 i32.store - local.get $3 + local.get $1 i32.const 0 i32.store offset=4 - local.get $3 + local.get $1 + local.tee $0 i32.const 123 i32.store - local.get $3 + local.get $1 i32.const 1040 i32.store offset=4 - local.get $3 + local.get $1 + call $~lib/rt/pure/__retain + local.tee $1 i32.load i32.const 123 i32.ne @@ -1795,7 +1838,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 i32.load offset=4 i32.const 1040 call $~lib/string/String.__eq @@ -1808,197 +1851,201 @@ call $~lib/builtins/abort unreachable end + local.get $1 + call $~lib/rt/pure/__release i32.const 8 i32.const 0 call $~lib/rt/tlsf/__alloc - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 i32.const 123 i32.store - local.get $2 + local.get $1 block $__inlined_func$~lib/string/String#substring (result i32) i32.const 1312 i32.const 0 i32.const 1040 call $~lib/string/String#get:length - local.tee $5 + local.tee $2 i32.const 0 - local.get $5 + local.get $2 i32.lt_s select - local.tee $4 + local.tee $3 i32.const 5 - local.get $5 + local.get $2 i32.const 5 - local.get $5 + local.get $2 i32.lt_s select - local.tee $1 - local.get $4 - local.get $1 + local.tee $5 + local.get $3 + local.get $5 i32.gt_s select i32.const 1 i32.shl - local.tee $0 - local.get $4 - local.get $1 - local.get $4 - local.get $1 + local.tee $4 + local.get $3 + local.get $5 + local.get $3 + local.get $5 i32.lt_s select i32.const 1 i32.shl - local.tee $4 + local.tee $3 i32.sub - local.tee $1 + local.tee $5 i32.eqz br_if $__inlined_func$~lib/string/String#substring drop i32.const 1040 i32.const 0 - local.get $0 - local.get $5 + local.get $4 + local.get $2 i32.const 1 i32.shl i32.eq - local.get $4 + local.get $3 select br_if $__inlined_func$~lib/string/String#substring drop - local.get $1 + local.get $5 i32.const 1 call $~lib/rt/tlsf/__alloc - local.tee $0 - local.get $4 + local.tee $4 + local.get $3 i32.const 1040 i32.add - local.get $1 + local.get $5 call $~lib/memory/memory.copy - local.get $0 + local.get $4 call $~lib/rt/pure/__retain end i32.store offset=4 - local.get $2 + local.get $1 call $object-literal/testUnmanaged i32.const 65 i32.const 4 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=4 - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i64.const 0 i64.store offset=16 - local.get $0 + local.get $1 f32.const 0 f32.store offset=24 - local.get $0 + local.get $1 f64.const 0 f64.store offset=32 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=40 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=41 - local.get $0 + local.get $1 i32.const 0 i32.store16 offset=42 - local.get $0 + local.get $1 i32.const 0 i32.store16 offset=44 - local.get $0 + local.get $1 i32.const 0 i32.store offset=48 - local.get $0 + local.get $1 i32.const 0 i32.store offset=52 - local.get $0 + local.get $1 f64.const 0 f64.store offset=56 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=64 - local.get $0 + local.get $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=4 - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i64.const 0 i64.store offset=16 - local.get $0 + local.get $1 f32.const 0 f32.store offset=24 - local.get $0 + local.get $1 f64.const 0 f64.store offset=32 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=40 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=41 - local.get $0 + local.get $1 i32.const 0 i32.store16 offset=42 - local.get $0 + local.get $1 i32.const 0 i32.store16 offset=44 - local.get $0 + local.get $1 i32.const 0 i32.store offset=48 - local.get $0 + local.get $1 i32.const 0 i32.store offset=52 - local.get $0 + local.get $1 f64.const 0 f64.store offset=56 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=64 - local.get $0 + local.get $1 call $object-literal/testOmittedTypes i32.const 16 i32.const 5 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.tee $2 + local.tee $4 i32.const 0 i32.store - local.get $2 + local.get $4 i32.const 0 i32.store offset=4 - local.get $2 + local.get $4 f64.const 0 f64.store offset=8 - local.get $2 + local.get $4 i32.const 0 i32.store - local.get $2 + local.get $4 i32.const 1360 i32.store offset=4 - local.get $2 + local.get $4 f64.const 0 f64.store offset=8 - local.get $2 + local.get $4 + call $~lib/rt/pure/__retain + local.tee $5 i32.load if i32.const 0 @@ -2008,7 +2055,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $5 i32.load offset=4 i32.const 1360 call $~lib/string/String.__eq @@ -2021,7 +2068,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $5 f64.load offset=8 f64.const 0 f64.ne @@ -2033,71 +2080,73 @@ call $~lib/builtins/abort unreachable end + local.get $5 + call $~lib/rt/pure/__release i32.const 40 i32.const 6 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.tee $1 + local.tee $5 i32.const 1392 i32.store - local.get $1 + local.get $5 i32.const 1424 i32.store offset=4 - local.get $1 + local.get $5 i32.const 0 i32.store offset=8 - local.get $1 + local.get $5 i32.const 0 i32.store offset=12 - local.get $1 + local.get $5 i32.const 0 i32.store offset=16 - local.get $1 + local.get $5 i32.const 0 i32.store offset=20 - local.get $1 + local.get $5 i32.const 0 i32.store offset=24 - local.get $1 + local.get $5 i32.const 0 i32.store offset=28 - local.get $1 + local.get $5 i32.const 0 i32.store offset=32 - local.get $1 + local.get $5 i32.const -1 i32.store offset=36 - local.get $1 + local.get $5 i32.const 0 i32.store offset=8 - local.get $1 + local.get $5 i32.const 0 i32.store offset=12 - local.get $1 + local.get $5 i32.const 0 i32.store offset=16 - local.get $1 + local.get $5 i32.const 0 i32.store offset=20 - local.get $1 + local.get $5 i32.const 0 i32.store offset=24 - local.get $1 + local.get $5 i32.const 0 i32.store offset=28 - local.get $1 + local.get $5 i32.const 0 i32.store offset=32 - local.get $1 + local.get $5 call $object-literal/testOmittedFoo - local.get $3 - call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release ) (func $~start global.get $~started diff --git a/tests/compiler/rc/optimize.optimized.wat b/tests/compiler/rc/optimize.optimized.wat index 037b79f47f..ff3771746b 100644 --- a/tests/compiler/rc/optimize.optimized.wat +++ b/tests/compiler/rc/optimize.optimized.wat @@ -28,15 +28,15 @@ (export "getRef" (func $rc/optimize/getRef)) (export "OptimizeARC.eliminates.linearArgument" (func $rc/optimize/eliminated_vi)) (export "OptimizeARC.eliminates.linearLocal" (func $rc/optimize/eliminated_vi)) - (export "OptimizeARC.eliminates.linearChain" (func $rc/optimize/eliminated_vi)) + (export "OptimizeARC.eliminates.linearChain" (func $rc/optimize/OptimizeARC.eliminates.linearChain)) (export "OptimizeARC.eliminates.balancedReleases" (func $rc/optimize/eliminated_vii)) - (export "OptimizeARC.eliminates.partialReleases" (func $rc/optimize/eliminated_vii)) + (export "OptimizeARC.eliminates.partialReleases" (func $rc/optimize/OptimizeARC.eliminates.partialReleases)) (export "OptimizeARC.eliminates.balancedRetains" (func $rc/optimize/eliminated_viii)) - (export "OptimizeARC.eliminates.balancedInsideLoop" (func $rc/optimize/eliminated_vii)) + (export "OptimizeARC.eliminates.balancedInsideLoop" (func $rc/optimize/OptimizeARC.eliminates.balancedInsideLoop)) (export "OptimizeARC.eliminates.balancedOutsideLoop" (func $rc/optimize/eliminated_vii)) - (export "OptimizeARC.eliminates.balancedInsideOutsideLoop" (func $rc/optimize/eliminated_vii)) + (export "OptimizeARC.eliminates.balancedInsideOutsideLoop" (func $rc/optimize/OptimizeARC.eliminates.balancedInsideOutsideLoop)) (export "OptimizeARC.eliminates.balancedInsideOutsideLoopWithBranch" (func $rc/optimize/OptimizeARC.eliminates.balancedInsideOutsideLoopWithBranch)) - (export "OptimizeARC.eliminates.replace" (func $rc/optimize/eliminated_vii)) + (export "OptimizeARC.eliminates.replace" (func $rc/optimize/OptimizeARC.eliminates.replace)) (export "OptimizeARC.eliminates.replaceAlreadyRetained" (func $rc/optimize/eliminated_rr)) (export "OptimizeARC.keeps.partialRetains" (func $rc/optimize/OptimizeARC.keeps.partialRetains)) (export "OptimizeARC.keeps.reachesReturn" (func $rc/optimize/OptimizeARC.keeps.reachesReturn)) @@ -1000,23 +1000,113 @@ end ) (func $rc/optimize/eliminated_rr (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain call $~lib/rt/tlsf/maybeInitialize call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add call $~lib/rt/pure/__retain + local.set $1 + call $~lib/rt/pure/__release + local.get $1 + ) + (func $rc/optimize/OptimizeARC.eliminates.linearChain (param $0 i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + call $~lib/rt/pure/__retain + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + ) + (func $rc/optimize/OptimizeARC.eliminates.partialReleases (param $0 i32) (param $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + if + local.get $0 + call $~lib/rt/pure/__release + end + ) + (func $rc/optimize/OptimizeARC.eliminates.balancedInsideLoop (param $0 i32) (param $1 i32) + loop $while-continue|0 + local.get $1 + if + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + call $~lib/rt/pure/__release + br $while-continue|0 + end + end + ) + (func $rc/optimize/OptimizeARC.eliminates.balancedInsideOutsideLoop (param $0 i32) (param $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + loop $while-continue|0 + local.get $1 + if + local.get $0 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + br $while-continue|0 + end + end + local.get $0 + call $~lib/rt/pure/__release ) (func $rc/optimize/OptimizeARC.eliminates.balancedInsideOutsideLoopWithBranch (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 loop $while-continue|0 local.get $1 if local.get $2 if + local.get $0 + call $~lib/rt/pure/__release return end + local.get $0 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 br $while-continue|0 end end + local.get $0 + call $~lib/rt/pure/__release + ) + (func $rc/optimize/OptimizeARC.eliminates.replace (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + local.get $1 + call $~lib/rt/pure/__retain + local.tee $2 + local.tee $1 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + end + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release ) (func $rc/optimize/OptimizeARC.keeps.partialRetains (param $0 i32) (param $1 i32) local.get $1 diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index 57ff3b39f2..6b15026f34 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -1195,10 +1195,18 @@ (func $~lib/util/string/compareImpl (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 + call $~lib/rt/pure/__retain + local.tee $4 + local.tee $3 i32.const 7 i32.and local.get $1 + call $~lib/rt/pure/__retain + local.tee $5 + local.tee $1 i32.const 7 i32.and i32.or @@ -1210,16 +1218,16 @@ select if loop $do-continue|0 - local.get $0 + local.get $3 i64.load local.get $1 i64.load i64.eq if - local.get $0 + local.get $3 i32.const 8 i32.add - local.set $0 + local.set $3 local.get $1 i32.const 8 i32.add @@ -1236,29 +1244,33 @@ end loop $while-continue|1 local.get $2 - local.tee $3 + local.tee $0 i32.const 1 i32.sub local.set $2 - local.get $3 + local.get $0 if - local.get $0 + local.get $3 i32.load16_u - local.tee $3 + local.tee $0 local.get $1 i32.load16_u - local.tee $4 + local.tee $6 i32.ne if - local.get $3 local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + local.get $6 i32.sub return end - local.get $0 + local.get $3 i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 i32.const 2 i32.add @@ -1266,14 +1278,26 @@ br $while-continue|1 end end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release i32.const 0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 local.get $1 + call $~lib/rt/pure/__retain + local.tee $1 i32.eq if + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 1 return end @@ -1296,8 +1320,16 @@ local.get $2 call $~lib/util/string/compareImpl i32.eqz + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release return end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 0 ) (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (result i32) diff --git a/tests/compiler/retain-release-sanity.optimized.wat b/tests/compiler/retain-release-sanity.optimized.wat index 58380a3cb1..2ad78db6e5 100644 --- a/tests/compiler/retain-release-sanity.optimized.wat +++ b/tests/compiler/retain-release-sanity.optimized.wat @@ -1700,14 +1700,20 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) block $__inlined_func$~lib/string/String#concat (result i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $2 i32.const 1424 - local.get $0 + local.get $2 select - local.set $2 + local.set $3 local.get $1 call $~lib/rt/pure/__retain + local.tee $5 + call $~lib/rt/pure/__retain local.tee $0 i32.eqz if @@ -1721,16 +1727,16 @@ i32.const 1424 local.set $0 end - local.get $2 + local.get $3 call $~lib/string/String#get:length i32.const 1 i32.shl - local.tee $3 + local.tee $4 local.get $0 call $~lib/string/String#get:length i32.const 1 i32.shl - local.tee $4 + local.tee $6 i32.add local.tee $1 i32.eqz @@ -1745,19 +1751,23 @@ call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 - local.get $2 local.get $3 + local.get $4 call $~lib/memory/memory.copy local.get $1 - local.get $3 + local.get $4 i32.add local.get $0 - local.get $4 + local.get $6 call $~lib/memory/memory.copy local.get $0 call $~lib/rt/pure/__release local.get $1 end + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release ) (func $start:retain-release-sanity (local $0 i32) @@ -1956,22 +1966,25 @@ local.get $3 local.get $3 i32.load offset=12 - local.tee $5 + local.tee $2 i32.const 1 i32.add - local.tee $2 + local.tee $5 call $~lib/array/ensureSize local.get $3 i32.load offset=4 - local.get $5 + local.get $2 i32.const 2 i32.shl i32.add i32.const 1344 + call $~lib/rt/pure/__retain i32.store local.get $3 - local.get $2 + local.get $5 i32.store offset=12 + i32.const 1344 + call $~lib/rt/pure/__release local.get $0 i32.const 1 i32.add @@ -1993,10 +2006,14 @@ i32.const 1392 call $~lib/string/String.__concat local.tee $1 + call $~lib/rt/pure/__retain + local.tee $3 i32.const 1456 call $~lib/string/String.__concat local.get $1 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release call $~lib/rt/pure/__release i32.const 4 i32.const 6 diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index d61a0197ba..d5bd65715a 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -1579,6 +1579,15 @@ i32.store offset=12 local.get $3 ) + (func $~lib/array/Array.isArray<~lib/array/Array | null> (param $0 i32) (result i32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + call $~lib/rt/pure/__release + local.get $0 + i32.const 0 + i32.ne + ) (func $std/array/Ref#constructor (param $0 i32) (result i32) (local $1 i32) i32.const 4 @@ -1890,45 +1899,59 @@ (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - block $folding-inner0 - local.get $0 - i32.load offset=12 - local.tee $3 - local.get $1 - i32.load offset=12 - i32.ne - br_if $folding-inner0 - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - return - end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.get $1 - local.get $2 - call $~lib/array/Array#__get - i32.ne - br_if $folding-inner0 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + block $folding-inner1 + block $folding-inner0 + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + br_if $folding-inner0 + local.get $0 + local.get $1 + i32.eq + br_if $folding-inner1 + loop $for-loop|0 local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + i32.ne + br_if $folding-inner0 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end + br $folding-inner1 end - i32.const 1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 0 return end - i32.const 0 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 1 ) (func $~lib/array/Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) @@ -2028,58 +2051,82 @@ ) (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - block $folding-inner0 - local.get $2 - i32.eqz - if - local.get $0 - i32.load offset=12 - local.tee $2 - local.get $1 - i32.load offset=12 - i32.ne - br_if $folding-inner0 - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - return - end - end - loop $for-loop|0 - local.get $3 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + block $folding-inner1 + block $folding-inner0 local.get $2 - i32.lt_s + i32.eqz if local.get $0 - local.get $3 - call $~lib/array/Array#__get + i32.load offset=12 + local.tee $2 local.get $1 - local.get $3 - call $~lib/array/Array#__get + i32.load offset=12 i32.ne br_if $folding-inner0 + local.get $0 + local.get $1 + i32.eq + br_if $folding-inner1 + end + loop $for-loop|0 local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.get $1 + local.get $3 + call $~lib/array/Array#__get + i32.ne + br_if $folding-inner0 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end end + br $folding-inner1 end - i32.const 1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 0 return end - i32.const 0 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 1 ) (func $std/array/internalCapacity (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load + call $~lib/rt/pure/__retain + local.tee $1 i32.const 16 i32.sub i32.load offset=12 i32.const 2 i32.shr_s + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) (local $1 i32) @@ -2357,6 +2404,9 @@ (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 @@ -2403,6 +2453,8 @@ 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) @@ -3017,16 +3069,24 @@ ) (func $start:std/array~anonymous|3 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 + call $~lib/rt/pure/__retain + local.tee $1 i32.const 100 call $~lib/array/Array#push + local.get $1 + call $~lib/rt/pure/__release local.get $0 i32.const 100 i32.eq ) (func $start:std/array~anonymous|5 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 + call $~lib/rt/pure/__retain + local.tee $1 call $~lib/array/Array#pop drop + local.get $1 + call $~lib/rt/pure/__release local.get $0 i32.const 100 i32.eq @@ -3088,8 +3148,12 @@ ) (func $start:std/array~anonymous|8 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 + call $~lib/rt/pure/__retain + local.tee $1 i32.const 100 call $~lib/array/Array#push + local.get $1 + call $~lib/rt/pure/__release local.get $0 i32.const 10 i32.lt_s @@ -3101,8 +3165,12 @@ ) (func $start:std/array~anonymous|10 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 + call $~lib/rt/pure/__retain + local.tee $1 call $~lib/array/Array#pop drop + local.get $1 + call $~lib/rt/pure/__release local.get $0 i32.const 3 i32.lt_s @@ -3163,8 +3231,12 @@ ) (func $start:std/array~anonymous|13 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 + call $~lib/rt/pure/__retain + local.tee $1 i32.const 100 call $~lib/array/Array#push + local.get $1 + call $~lib/rt/pure/__release local.get $0 i32.const 10 i32.gt_s @@ -3176,17 +3248,24 @@ ) (func $start:std/array~anonymous|15 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 + call $~lib/rt/pure/__retain + local.tee $1 call $~lib/array/Array#pop drop + local.get $1 + call $~lib/rt/pure/__release local.get $0 i32.const 3 i32.gt_s ) (func $start:std/array~anonymous|16 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain local.get $0 global.get $std/array/i i32.add global.set $std/array/i + call $~lib/rt/pure/__release ) (func $~lib/array/Array#forEach (param $0 i32) (param $1 i32) (local $2 i32) @@ -3229,24 +3308,35 @@ ) (func $start:std/array~anonymous|17 (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 + call $~lib/rt/pure/__retain + local.tee $1 i32.const 100 call $~lib/array/Array#push local.get $0 global.get $std/array/i i32.add global.set $std/array/i + local.get $1 + 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.tee $1 call $~lib/array/Array#pop drop local.get $0 global.get $std/array/i i32.add global.set $std/array/i + local.get $1 + call $~lib/rt/pure/__release ) (func $start:std/array~anonymous|20 (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 local.get $1 i32.eqz if @@ -3337,6 +3427,8 @@ 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.get $0 @@ -3365,12 +3457,16 @@ ) (func $start:std/array~anonymous|22 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 + call $~lib/rt/pure/__retain + local.tee $1 i32.const 100 call $~lib/array/Array#push local.get $0 global.get $std/array/i i32.add global.set $std/array/i + local.get $1 + call $~lib/rt/pure/__release local.get $0 ) (func $~lib/array/Array#map (param $0 i32) (param $1 i32) (result i32) @@ -3431,20 +3527,27 @@ local.get $5 ) (func $start:std/array~anonymous|23 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/rt/pure/__retain local.get $0 global.get $std/array/i i32.add global.set $std/array/i + call $~lib/rt/pure/__release local.get $0 ) (func $start:std/array~anonymous|24 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 + call $~lib/rt/pure/__retain + local.tee $1 call $~lib/array/Array#pop drop local.get $0 global.get $std/array/i i32.add global.set $std/array/i + local.get $1 + call $~lib/rt/pure/__release local.get $0 ) (func $start:std/array~anonymous|25 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -3507,33 +3610,44 @@ ) (func $start:std/array~anonymous|26 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 + call $~lib/rt/pure/__retain + local.tee $1 i32.const 100 call $~lib/array/Array#push local.get $0 global.get $std/array/i i32.add global.set $std/array/i + local.get $1 + call $~lib/rt/pure/__release local.get $0 i32.const 2 i32.ge_s ) (func $start:std/array~anonymous|27 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/rt/pure/__retain local.get $0 global.get $std/array/i i32.add global.set $std/array/i + call $~lib/rt/pure/__release local.get $0 i32.const 2 i32.ge_s ) (func $start:std/array~anonymous|28 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 + call $~lib/rt/pure/__retain + local.tee $1 call $~lib/array/Array#pop drop local.get $0 global.get $std/array/i i32.add global.set $std/array/i + local.get $1 + call $~lib/rt/pure/__release local.get $0 i32.const 2 i32.ge_s @@ -3603,16 +3717,24 @@ ) (func $start:std/array~anonymous|33 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 + call $~lib/rt/pure/__retain + local.tee $2 i32.const 1 call $~lib/array/Array#push + local.get $2 + call $~lib/rt/pure/__release local.get $0 local.get $1 i32.add ) (func $start:std/array~anonymous|35 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 + call $~lib/rt/pure/__retain + local.tee $2 call $~lib/array/Array#pop drop + local.get $2 + call $~lib/rt/pure/__release local.get $0 local.get $1 i32.add @@ -4030,25 +4152,102 @@ i32.lt_s i32.sub ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) - (local $6 f64) - (local $7 i32) + (local $3 f32) + (local $4 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - local.tee $2 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $5 - i32.const 0 + call $~lib/rt/pure/__retain + local.set $1 + block $folding-inner1 + block $folding-inner0 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $1 + i32.load offset=12 + i32.ne + br_if $folding-inner0 + local.get $0 + local.get $1 + i32.eq + br_if $folding-inner1 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.tee $3 + local.get $3 + f32.ne + if (result i32) + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.tee $3 + local.get $3 + f32.ne + else + i32.const 0 + end + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + f32.ne + br_if $folding-inner0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + br $folding-inner1 + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 0 + return + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 1 + ) + (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 f64) + (local $7 i32) + local.get $1 + i32.const 31 + i32.add + i32.const 5 + i32.shr_u + i32.const 2 + i32.shl + local.tee $2 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.tee $5 + i32.const 0 local.get $2 call $~lib/memory/memory.fill local.get $1 @@ -4331,6 +4530,83 @@ i32.add f64.load ) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 f64) + (local $4 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + block $folding-inner1 + block $folding-inner0 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $1 + i32.load offset=12 + i32.ne + br_if $folding-inner0 + local.get $0 + local.get $1 + i32.eq + br_if $folding-inner1 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.tee $3 + local.get $3 + f64.ne + if (result i32) + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.tee $3 + local.get $3 + f64.ne + else + i32.const 0 + end + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + f64.ne + br_if $folding-inner0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + br $folding-inner1 + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 0 + return + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 1 + ) (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) @@ -4833,22 +5109,25 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) block $__inlined_func$std/array/isSorted (result i32) i32.const 1 local.set $2 local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 local.get $1 call $~lib/array/Array#sort - local.tee $3 + local.tee $4 + call $~lib/rt/pure/__retain local.tee $0 i32.load offset=12 - local.set $4 + local.set $5 loop $for-loop|0 local.get $2 - local.get $4 + local.get $5 i32.lt_s if - i32.const 0 local.get $0 local.get $2 i32.const 1 @@ -4861,8 +5140,12 @@ call_indirect (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - br_if $__inlined_func$std/array/isSorted - drop + if + local.get $0 + call $~lib/rt/pure/__release + i32.const 0 + br $__inlined_func$std/array/isSorted + end local.get $2 i32.const 1 i32.add @@ -4870,6 +5153,8 @@ br $for-loop|0 end end + local.get $0 + call $~lib/rt/pure/__release i32.const 1 end i32.eqz @@ -4881,9 +5166,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 + call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release ) + (func $std/array/assertSortedDefault (param $0 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 48 + call $std/array/assertSorted + local.get $0 + call $~lib/rt/pure/__release + ) (func $start:std/array~anonymous|44 (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 @@ -4891,6 +5187,9 @@ ) (func $~lib/array/Array<~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 local.get $1 local.get $0 i32.load offset=12 @@ -4918,6 +5217,7 @@ i32.store offset=12 end local.get $2 + call $~lib/rt/pure/__retain local.tee $3 local.get $0 i32.load offset=4 @@ -4937,6 +5237,10 @@ local.get $1 call $~lib/rt/pure/__release end + local.get $3 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release ) (func $std/array/createReverseOrderedNestedArray (result i32) (local $0 i32) @@ -5022,6 +5326,13 @@ local.get $2 ) (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 @@ -5029,112 +5340,79 @@ i32.const 0 call $~lib/array/Array#__get i32.sub + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $~lib/array/Array<~lib/array/Array>#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (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.get $0 - i32.load offset=12 - local.tee $5 - 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 $2 - local.get $5 - i32.const 2 - i32.eq - if - local.get $2 - i32.load offset=4 - local.tee $3 - local.get $2 - i32.load - local.tee $5 - local.get $1 - call_indirect (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $2 - local.get $5 - i32.store offset=4 - local.get $2 - local.get $3 - i32.store - end - local.get $0 - call $~lib/rt/pure/__retain - return - end - local.get $2 - local.set $3 - local.get $1 - local.set $7 loop $for-loop|0 local.get $4 - local.get $5 + local.get $1 i32.lt_s if - local.get $3 + local.get $0 local.get $4 i32.const 2 i32.shl i32.add i32.load + call $~lib/rt/pure/__retain local.set $6 local.get $4 i32.const 1 i32.sub - local.set $1 + local.set $3 loop $while-continue|1 - local.get $1 + local.get $3 i32.const 0 i32.ge_s if - local.get $6 - local.get $3 - 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 $2 - i32.const 1 - i32.sub - local.set $1 + block $while-break|1 + local.get $6 + local.get $0 local.get $3 - local.get $2 - i32.const 1 - i32.add i32.const 2 i32.shl i32.add - local.get $8 - i32.store + i32.load + call $~lib/rt/pure/__retain + local.tee $5 + local.get $2 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if (result i32) + local.get $0 + local.get $3 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store + local.get $3 + i32.const 1 + i32.sub + else + local.get $5 + call $~lib/rt/pure/__release + br $while-break|1 + end + local.set $3 + local.get $5 + call $~lib/rt/pure/__release br $while-continue|1 end end end + local.get $0 local.get $3 - local.get $1 i32.const 1 i32.add i32.const 2 @@ -5142,6 +5420,8 @@ i32.add local.get $6 i32.store + local.get $6 + call $~lib/rt/pure/__release local.get $4 i32.const 1 i32.add @@ -5149,6 +5429,60 @@ 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.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 $3 + local.get $2 + i32.const 2 + i32.eq + if + local.get $3 + i32.load offset=4 + call $~lib/rt/pure/__retain + local.tee $2 + local.get $3 + i32.load + call $~lib/rt/pure/__retain + local.tee $4 + local.get $1 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $4 + i32.store offset=4 + local.get $3 + local.get $2 + i32.store + end + local.get $0 + call $~lib/rt/pure/__retain + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + return + end + local.get $3 + local.get $2 + local.get $1 + call $~lib/util/sort/insertionSort<~lib/array/Array> local.get $0 call $~lib/rt/pure/__retain ) @@ -5158,31 +5492,35 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) block $__inlined_func$std/array/isSorted<~lib/array/Array> (result i32) i32.const 1 local.set $2 local.get $0 + call $~lib/rt/pure/__retain + local.tee $5 local.get $1 call $~lib/array/Array<~lib/array/Array>#sort - local.tee $5 - local.tee $4 + local.tee $6 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=12 - local.set $6 + local.set $7 loop $for-loop|0 local.get $2 - local.get $6 + local.get $7 i32.lt_s if - local.get $4 + local.get $0 local.get $2 i32.const 1 i32.sub call $~lib/array/Array#__get - local.tee $0 - local.get $4 + local.tee $3 + local.get $0 local.get $2 call $~lib/array/Array#__get - local.tee $3 + local.tee $4 local.get $1 call_indirect (type $i32_i32_=>_i32) i32.const 0 @@ -5192,13 +5530,15 @@ call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release i32.const 0 br $__inlined_func$std/array/isSorted<~lib/array/Array> end - local.get $0 - call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release local.get $2 i32.const 1 i32.add @@ -5206,6 +5546,8 @@ br $for-loop|0 end end + local.get $0 + call $~lib/rt/pure/__release i32.const 1 end i32.eqz @@ -5217,6 +5559,8 @@ call $~lib/builtins/abort unreachable end + local.get $6 + call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release ) @@ -5305,11 +5649,22 @@ local.get $2 ) (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.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) (func $~lib/string/String#get:length (param $0 i32) (result i32) local.get $0 @@ -5322,10 +5677,18 @@ (func $~lib/util/string/compareImpl (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 + call $~lib/rt/pure/__retain + local.tee $4 + local.tee $3 i32.const 7 i32.and local.get $1 + call $~lib/rt/pure/__retain + local.tee $5 + local.tee $1 i32.const 7 i32.and i32.or @@ -5337,16 +5700,16 @@ select if loop $do-continue|0 - local.get $0 + local.get $3 i64.load local.get $1 i64.load i64.eq if - local.get $0 + local.get $3 i32.const 8 i32.add - local.set $0 + local.set $3 local.get $1 i32.const 8 i32.add @@ -5363,29 +5726,33 @@ end loop $while-continue|1 local.get $2 - local.tee $3 + local.tee $0 i32.const 1 i32.sub local.set $2 - local.get $3 + local.get $0 if - local.get $0 + local.get $3 i32.load16_u - local.tee $3 + local.tee $0 local.get $1 i32.load16_u - local.tee $4 + local.tee $6 i32.ne if - local.get $3 local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + local.get $6 i32.sub return end - local.get $0 + local.get $3 i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 i32.const 2 i32.add @@ -5393,23 +5760,35 @@ br $while-continue|1 end end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release i32.const 0 ) (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) block $folding-inner0 - i32.const 1 - local.get $1 - i32.eqz - i32.const 1 - local.get $0 - i32.eqz local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 local.get $1 + call $~lib/rt/pure/__retain + local.tee $1 i32.eq - select - select + if (result i32) + i32.const 1 + else + local.get $0 + i32.eqz + end + if (result i32) + i32.const 1 + else + local.get $1 + i32.eqz + end br_if $folding-inner0 local.get $0 call $~lib/string/String#get:length @@ -5425,12 +5804,20 @@ local.get $2 i32.eqz if + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const -1 return end local.get $3 i32.eqz if + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 1 return end @@ -5443,16 +5830,32 @@ i32.lt_s select call $~lib/util/string/compareImpl + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release return end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 local.get $1 + call $~lib/rt/pure/__retain + local.tee $1 i32.eq if + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 1 return end @@ -5475,22 +5878,129 @@ local.get $2 call $~lib/util/string/compareImpl i32.eqz + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release return end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 0 ) + (func $std/array/isArraysEqual<~lib/string/String | null> (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 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 offset=12 + local.tee $5 + local.get $1 + i32.load offset=12 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 0 + return + end + local.get $0 + local.get $1 + i32.eq + if + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 1 + return + end + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $3 + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.set $4 + local.get $3 + call $~lib/rt/pure/__retain + local.tee $6 + local.get $4 + call $~lib/rt/pure/__retain + local.tee $7 + call $~lib/string/String.__eq + i32.eqz + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + if + 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 $4 + call $~lib/rt/pure/__release + i32.const 0 + return + end + local.get $3 + call $~lib/rt/pure/__release + 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 $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 1 + ) (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) block $__inlined_func$~lib/string/String#concat (result i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $2 i32.const 6176 - local.get $0 + local.get $2 select - local.set $2 + local.set $3 local.get $1 call $~lib/rt/pure/__retain + local.tee $5 + call $~lib/rt/pure/__retain local.tee $0 i32.eqz if @@ -5504,16 +6014,16 @@ i32.const 6176 local.set $0 end - local.get $2 + local.get $3 call $~lib/string/String#get:length i32.const 1 i32.shl - local.tee $3 + local.tee $4 local.get $0 call $~lib/string/String#get:length i32.const 1 i32.shl - local.tee $4 + local.tee $6 i32.add local.tee $1 i32.eqz @@ -5528,19 +6038,23 @@ call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 - local.get $2 local.get $3 + local.get $4 call $~lib/memory/memory.copy local.get $1 - local.get $3 + local.get $4 i32.add local.get $0 - local.get $4 + local.get $6 call $~lib/memory/memory.copy local.get $0 call $~lib/rt/pure/__release local.get $1 end + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release ) (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -5624,17 +6138,23 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + i32.const 6304 + call $~lib/rt/pure/__retain + local.set $3 local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $4 i32.const 0 i32.lt_s if + local.get $3 + call $~lib/rt/pure/__release i32.const 6064 return end - local.get $3 + local.get $4 i32.eqz if i32.const 6240 @@ -5643,18 +6163,20 @@ i32.load8_u select call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release return end + local.get $4 local.get $3 - i32.const 6304 call $~lib/string/String#get:length - local.tee $4 + local.tee $5 i32.const 5 i32.add i32.mul i32.const 5 i32.add - local.tee $7 + local.tee $8 i32.const 1 i32.shl i32.const 1 @@ -5662,19 +6184,19 @@ call $~lib/rt/pure/__retain local.set $1 loop $for-loop|1 - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.lt_s if local.get $0 - local.get $5 + local.get $6 i32.add i32.load8_u - local.tee $8 + local.tee $9 i32.eqz i32.const 4 i32.add - local.set $6 + local.set $7 local.get $1 local.get $2 i32.const 1 @@ -5682,45 +6204,45 @@ i32.add i32.const 6240 i32.const 6272 - local.get $8 + local.get $9 select - local.get $6 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $2 - local.get $6 + local.get $7 i32.add local.set $2 - local.get $4 + local.get $5 if local.get $1 local.get $2 i32.const 1 i32.shl i32.add - i32.const 6304 - local.get $4 + local.get $3 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $2 - local.get $4 + local.get $5 i32.add local.set $2 end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|1 end end local.get $0 - local.get $3 + local.get $4 i32.add i32.load8_u - local.tee $3 + local.tee $4 i32.eqz i32.const 4 i32.add @@ -5732,13 +6254,13 @@ i32.add i32.const 6240 i32.const 6272 - local.get $3 + local.get $4 select local.get $0 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $7 + local.get $8 local.get $0 local.get $2 i32.add @@ -5748,10 +6270,14 @@ local.get $1 local.get $0 call $~lib/string/String#substring + local.get $3 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release return end + local.get $3 + call $~lib/rt/pure/__release local.get $1 ) (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) @@ -5919,6 +6445,9 @@ (local $5 i32) (local $6 i32) (local $7 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 local.get $1 i32.const 1 i32.sub @@ -5926,6 +6455,8 @@ i32.const 0 i32.lt_s if + local.get $2 + call $~lib/rt/pure/__release i32.const 6064 return end @@ -5935,6 +6466,8 @@ local.get $0 i32.load call $~lib/util/number/itoa32 + local.get $2 + call $~lib/rt/pure/__release return end local.get $4 @@ -6012,19 +6545,28 @@ local.get $1 local.get $0 call $~lib/string/String#substring + local.get $2 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release return end + local.get $2 + call $~lib/rt/pure/__release local.get $1 ) (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 local.get $1 call $~lib/util/string/joinIntegerArray + local.get $1 + call $~lib/rt/pure/__release ) (func $~lib/util/number/utoa32 (param $0 i32) (result i32) (local $1 i32) @@ -6082,6 +6624,9 @@ (local $5 i32) (local $6 i32) (local $7 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 local.get $1 i32.const 1 i32.sub @@ -6089,6 +6634,8 @@ i32.const 0 i32.lt_s if + local.get $2 + call $~lib/rt/pure/__release i32.const 6064 return end @@ -6098,6 +6645,8 @@ local.get $0 i32.load call $~lib/util/number/utoa32 + local.get $2 + call $~lib/rt/pure/__release return end local.get $4 @@ -6175,19 +6724,28 @@ local.get $1 local.get $0 call $~lib/string/String#substring + local.get $2 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release return end + local.get $2 + call $~lib/rt/pure/__release local.get $1 ) (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 local.get $1 call $~lib/util/string/joinIntegerArray + local.get $1 + call $~lib/rt/pure/__release ) (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) @@ -7193,28 +7751,34 @@ ) (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 f64) - (local $4 i32) + (local $3 i32) + (local $4 f64) (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + i32.const 7024 + call $~lib/rt/pure/__retain + local.set $3 local.get $1 i32.const 1 i32.sub - local.tee $4 + local.tee $5 i32.const 0 i32.lt_s if + local.get $3 + call $~lib/rt/pure/__release i32.const 6064 return end - local.get $4 + local.get $5 i32.eqz if block $__inlined_func$~lib/util/number/dtoa local.get $0 f64.load - local.tee $3 + local.tee $4 f64.const 0 f64.eq if @@ -7222,14 +7786,14 @@ local.set $0 br $__inlined_func$~lib/util/number/dtoa end - local.get $3 - local.get $3 + local.get $4 + local.get $4 f64.sub f64.const 0 f64.ne if - local.get $3 - local.get $3 + local.get $4 + local.get $4 f64.ne if i32.const 7088 @@ -7238,7 +7802,7 @@ end i32.const 7120 i32.const 7168 - local.get $3 + local.get $4 f64.const 0 f64.lt select @@ -7250,7 +7814,7 @@ i32.const 1 call $~lib/rt/tlsf/__alloc local.tee $1 - local.get $3 + local.get $4 call $~lib/util/number/dtoa_core local.tee $0 i32.const 28 @@ -7270,19 +7834,21 @@ call $~lib/rt/tlsf/checkUsedBlock call $~lib/rt/tlsf/freeBlock end + local.get $3 + call $~lib/rt/pure/__release local.get $0 return end - local.get $4 - i32.const 7024 + local.get $5 + local.get $3 call $~lib/string/String#get:length - local.tee $5 + local.tee $6 i32.const 28 i32.add i32.mul i32.const 28 i32.add - local.tee $7 + local.tee $8 i32.const 1 i32.shl i32.const 1 @@ -7290,14 +7856,14 @@ call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 - local.get $6 - local.get $4 + local.get $7 + local.get $5 i32.lt_s if local.get $1 local.get $2 local.get $0 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add @@ -7306,35 +7872,35 @@ local.get $2 i32.add local.set $2 - local.get $5 + local.get $6 if local.get $1 local.get $2 i32.const 1 i32.shl i32.add - i32.const 7024 - local.get $5 + local.get $3 + local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $2 - local.get $5 + local.get $6 i32.add local.set $2 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|0 end end - local.get $7 + local.get $8 local.get $1 local.get $2 local.get $0 - local.get $4 + local.get $5 i32.const 3 i32.shl i32.add @@ -7348,10 +7914,14 @@ local.get $1 local.get $0 call $~lib/string/String#substring + local.get $3 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release return end + local.get $3 + call $~lib/rt/pure/__release local.get $1 ) (func $~lib/util/string/joinReferenceArray<~lib/string/String | null> (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -7362,6 +7932,9 @@ (local $7 i32) (local $8 i32) (local $9 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $5 local.get $1 i32.const 1 i32.sub @@ -7369,6 +7942,8 @@ i32.const 0 i32.lt_s if + local.get $5 + call $~lib/rt/pure/__release i32.const 6064 return end @@ -7377,38 +7952,39 @@ if local.get $0 i32.load - local.tee $5 + local.tee $4 if - local.get $5 + local.get $4 call $~lib/rt/pure/__retain - local.set $5 + local.set $4 end - local.get $5 + local.get $4 if (result i32) - local.get $5 + local.get $4 call $~lib/rt/pure/__retain else i32.const 6064 end local.get $5 call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release return end i32.const 6064 local.set $1 - local.get $2 - local.tee $4 + local.get $5 call $~lib/string/String#get:length local.set $8 loop $for-loop|0 - local.get $5 + local.get $4 local.get $6 i32.lt_s if local.get $3 local.tee $2 local.get $0 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -7451,7 +8027,7 @@ if local.get $1 local.tee $2 - local.get $4 + local.get $5 call $~lib/string/String.__concat local.tee $7 local.tee $1 @@ -7467,10 +8043,10 @@ local.get $7 call $~lib/rt/pure/__release end - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|0 end end @@ -7515,36 +8091,48 @@ local.get $3 local.set $1 end + local.get $5 + call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release local.get $1 ) (func $~lib/array/Array<~lib/string/String | null>#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 local.get $1 call $~lib/util/string/joinReferenceArray<~lib/string/String | null> + local.get $1 + call $~lib/rt/pure/__release ) - (func $~lib/util/string/joinReferenceArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/string/joinReferenceArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $6 local.get $1 i32.const 1 i32.sub - local.tee $5 + local.tee $7 i32.const 0 i32.lt_s if + local.get $6 + call $~lib/rt/pure/__release i32.const 6064 return end - local.get $5 + local.get $7 i32.eqz if local.get $0 @@ -7555,6 +8143,8 @@ call $~lib/rt/pure/__retain local.set $4 end + local.get $6 + call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release i32.const 8272 @@ -7565,12 +8155,12 @@ end i32.const 6064 local.set $1 - i32.const 6304 + local.get $6 call $~lib/string/String#get:length - local.set $7 + local.set $8 loop $for-loop|0 local.get $4 - local.get $5 + local.get $7 i32.lt_s if local.get $3 @@ -7593,31 +8183,32 @@ local.get $3 if local.get $1 - local.get $1 + local.tee $5 i32.const 8272 call $~lib/string/String.__concat - local.tee $6 + local.tee $1 local.tee $2 + local.get $5 i32.ne if local.get $2 call $~lib/rt/pure/__retain local.set $2 - local.get $1 + local.get $5 call $~lib/rt/pure/__release end - local.get $6 + local.get $1 call $~lib/rt/pure/__release local.get $2 local.set $1 end - local.get $7 + local.get $8 if local.get $1 local.tee $2 - i32.const 6304 + local.get $6 call $~lib/string/String.__concat - local.tee $6 + local.tee $5 local.tee $1 local.get $2 i32.ne @@ -7628,7 +8219,7 @@ local.get $2 call $~lib/rt/pure/__release end - local.get $6 + local.get $5 call $~lib/rt/pure/__release end local.get $4 @@ -7639,8 +8230,9 @@ end end local.get $3 + local.tee $4 local.get $0 - local.get $5 + local.get $7 i32.const 2 i32.shl i32.add @@ -7651,31 +8243,35 @@ local.get $2 call $~lib/rt/pure/__retain local.set $2 - local.get $3 + local.get $4 call $~lib/rt/pure/__release end local.get $2 + local.tee $0 if local.get $1 - local.get $1 + local.tee $2 i32.const 8272 call $~lib/string/String.__concat - local.tee $0 + local.tee $4 local.tee $3 + local.get $2 i32.ne if local.get $3 call $~lib/rt/pure/__retain local.set $3 - local.get $1 + local.get $2 call $~lib/rt/pure/__release end - local.get $0 + local.get $4 call $~lib/rt/pure/__release local.get $3 local.set $1 end - local.get $2 + local.get $6 + call $~lib/rt/pure/__release + local.get $0 call $~lib/rt/pure/__release local.get $1 ) @@ -7684,7 +8280,10 @@ i32.load offset=4 local.get $0 i32.load offset=12 + i32.const 6304 call $~lib/util/string/joinReferenceArray + i32.const 6304 + call $~lib/rt/pure/__release ) (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 @@ -7758,34 +8357,42 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + i32.const 6304 + call $~lib/rt/pure/__retain + local.set $3 local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $4 i32.const 0 i32.lt_s if + local.get $3 + call $~lib/rt/pure/__release i32.const 6064 return end - local.get $3 + local.get $4 i32.eqz if local.get $0 i32.load8_s call $~lib/util/number/itoa32 + local.get $3 + call $~lib/rt/pure/__release return end + local.get $4 local.get $3 - i32.const 6304 call $~lib/string/String#get:length - local.tee $4 + local.tee $5 i32.const 11 i32.add i32.mul i32.const 11 i32.add - local.tee $6 + local.tee $7 i32.const 1 i32.shl i32.const 1 @@ -7793,49 +8400,49 @@ call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.lt_s if local.get $1 local.get $2 local.get $0 - local.get $5 + local.get $6 i32.add i32.load8_s call $~lib/util/number/itoa_stream local.get $2 i32.add local.set $2 - local.get $4 + local.get $5 if local.get $1 local.get $2 i32.const 1 i32.shl i32.add - i32.const 6304 - local.get $4 + local.get $3 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $2 - local.get $4 + local.get $5 i32.add local.set $2 end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end - local.get $6 + local.get $7 local.get $1 local.get $2 local.get $0 - local.get $3 + local.get $4 i32.add i32.load8_s call $~lib/util/number/itoa_stream @@ -7847,10 +8454,14 @@ local.get $1 local.get $0 call $~lib/string/String#substring + local.get $3 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release return end + local.get $3 + call $~lib/rt/pure/__release local.get $1 ) (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -7894,34 +8505,42 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + i32.const 6304 + call $~lib/rt/pure/__retain + local.set $3 local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $4 i32.const 0 i32.lt_s if + local.get $3 + call $~lib/rt/pure/__release i32.const 6064 return end - local.get $3 + local.get $4 i32.eqz if local.get $0 i32.load16_u call $~lib/util/number/utoa32 + local.get $3 + call $~lib/rt/pure/__release return end + local.get $4 local.get $3 - i32.const 6304 call $~lib/string/String#get:length - local.tee $4 + local.tee $5 i32.const 10 i32.add i32.mul i32.const 10 i32.add - local.tee $6 + local.tee $7 i32.const 1 i32.shl i32.const 1 @@ -7929,14 +8548,14 @@ call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.lt_s if local.get $1 local.get $2 local.get $0 - local.get $5 + local.get $6 i32.const 1 i32.shl i32.add @@ -7945,35 +8564,35 @@ local.get $2 i32.add local.set $2 - local.get $4 + local.get $5 if local.get $1 local.get $2 i32.const 1 i32.shl i32.add - i32.const 6304 - local.get $4 + local.get $3 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $2 - local.get $4 + local.get $5 i32.add local.set $2 end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end - local.get $6 + local.get $7 local.get $1 local.get $2 local.get $0 - local.get $3 + local.get $4 i32.const 1 i32.shl i32.add @@ -7987,10 +8606,14 @@ local.get $1 local.get $0 call $~lib/string/String#substring + local.get $3 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release return end + local.get $3 + call $~lib/rt/pure/__release local.get $1 ) (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) @@ -8115,36 +8738,42 @@ (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 i32) + (local $4 i32) + (local $5 i64) (local $6 i32) (local $7 i32) + (local $8 i32) + i32.const 6304 + call $~lib/rt/pure/__retain + local.set $3 local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $4 i32.const 0 i32.lt_s if + local.get $3 + call $~lib/rt/pure/__release i32.const 6064 return end - local.get $3 + local.get $4 i32.eqz if block $__inlined_func$~lib/util/number/utoa64 (result i32) i32.const 6608 local.get $0 i64.load - local.tee $4 + local.tee $5 i64.eqz br_if $__inlined_func$~lib/util/number/utoa64 drop - local.get $4 + local.get $5 i64.const 4294967295 i64.le_u if - local.get $4 + local.get $5 i32.wrap_i64 local.tee $1 call $~lib/util/number/decimalCount32 @@ -8158,7 +8787,7 @@ local.get $2 call $~lib/util/number/utoa_dec_simple else - local.get $4 + local.get $5 call $~lib/util/number/decimalCount64High local.tee $1 i32.const 1 @@ -8166,25 +8795,27 @@ i32.const 1 call $~lib/rt/tlsf/__alloc local.tee $0 - local.get $4 + local.get $5 local.get $1 call $~lib/util/number/utoa_dec_simple end local.get $0 call $~lib/rt/pure/__retain end + local.get $3 + call $~lib/rt/pure/__release return end + local.get $4 local.get $3 - i32.const 6304 call $~lib/string/String#get:length - local.tee $5 + local.tee $6 i32.const 20 i32.add i32.mul i32.const 20 i32.add - local.tee $7 + local.tee $8 i32.const 1 i32.shl i32.const 1 @@ -8192,14 +8823,14 @@ call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 - local.get $6 - local.get $3 + local.get $7 + local.get $4 i32.lt_s if local.get $1 local.get $2 local.get $0 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add @@ -8208,35 +8839,35 @@ local.get $2 i32.add local.set $2 - local.get $5 + local.get $6 if local.get $1 local.get $2 i32.const 1 i32.shl i32.add - i32.const 6304 - local.get $5 + local.get $3 + local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $2 - local.get $5 + local.get $6 i32.add local.set $2 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|0 end end - local.get $7 + local.get $8 local.get $1 local.get $2 local.get $0 - local.get $3 + local.get $4 i32.const 3 i32.shl i32.add @@ -8250,10 +8881,14 @@ local.get $1 local.get $0 call $~lib/string/String#substring + local.get $3 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release return end + local.get $3 + call $~lib/rt/pure/__release local.get $1 ) (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i64) (result i32) @@ -8329,17 +8964,23 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + i32.const 6304 + call $~lib/rt/pure/__retain + local.set $4 local.get $1 i32.const 1 i32.sub - local.tee $4 + local.tee $5 i32.const 0 i32.lt_s if + local.get $4 + call $~lib/rt/pure/__release i32.const 6064 return end - local.get $4 + local.get $5 i32.eqz if block $__inlined_func$~lib/util/number/itoa64 (result i32) @@ -8373,14 +9014,14 @@ call $~lib/util/number/decimalCount32 local.get $0 i32.add - local.tee $4 + local.tee $5 i32.const 1 i32.shl i32.const 1 call $~lib/rt/tlsf/__alloc local.tee $1 local.get $2 - local.get $4 + local.get $5 call $~lib/util/number/utoa_dec_simple else local.get $3 @@ -8406,18 +9047,20 @@ local.get $1 call $~lib/rt/pure/__retain end + local.get $4 + call $~lib/rt/pure/__release return end + local.get $5 local.get $4 - i32.const 6304 call $~lib/string/String#get:length - local.tee $5 + local.tee $6 i32.const 21 i32.add i32.mul i32.const 21 i32.add - local.tee $7 + local.tee $8 i32.const 1 i32.shl i32.const 1 @@ -8425,14 +9068,14 @@ call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 - local.get $6 - local.get $4 + local.get $7 + local.get $5 i32.lt_s if local.get $1 local.get $2 local.get $0 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add @@ -8441,35 +9084,35 @@ local.get $2 i32.add local.set $2 - local.get $5 + local.get $6 if local.get $1 local.get $2 i32.const 1 i32.shl i32.add - i32.const 6304 - local.get $5 + local.get $4 + local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $2 - local.get $5 + local.get $6 i32.add local.set $2 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|0 end end - local.get $7 + local.get $8 local.get $1 local.get $2 local.get $0 - local.get $4 + local.get $5 i32.const 3 i32.shl i32.add @@ -8483,10 +9126,14 @@ local.get $1 local.get $0 call $~lib/string/String#substring + local.get $4 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release return end + local.get $4 + call $~lib/rt/pure/__release local.get $1 ) (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (param $0 i32) (param $1 i32) (result i32) @@ -8497,17 +9144,23 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + i32.const 6304 + call $~lib/rt/pure/__retain + local.set $5 local.get $1 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.const 0 i32.lt_s if + local.get $5 + call $~lib/rt/pure/__release i32.const 6064 return end - local.get $5 + local.get $6 i32.eqz if local.get $0 @@ -8526,18 +9179,20 @@ else i32.const 6064 end + local.get $5 + call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release return end i32.const 6064 local.set $1 - i32.const 6304 + local.get $5 call $~lib/string/String#get:length - local.set $7 + local.set $8 loop $for-loop|0 local.get $4 - local.get $5 + local.get $6 i32.lt_s if local.get $3 @@ -8567,7 +9222,7 @@ local.get $1 local.get $2 call $~lib/string/String.__concat - local.tee $8 + local.tee $9 local.tee $2 i32.ne if @@ -8578,18 +9233,18 @@ call $~lib/rt/pure/__release end call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release local.get $2 local.set $1 end - local.get $7 + local.get $8 if local.get $1 local.tee $2 - i32.const 6304 + local.get $5 call $~lib/string/String.__concat - local.tee $6 + local.tee $7 local.tee $1 local.get $2 i32.ne @@ -8600,7 +9255,7 @@ local.get $2 call $~lib/rt/pure/__release end - local.get $6 + local.get $7 call $~lib/rt/pure/__release end local.get $4 @@ -8610,14 +9265,14 @@ br $for-loop|0 end end + local.get $3 local.get $0 - local.get $5 + local.get $6 i32.const 2 i32.shl i32.add i32.load local.tee $2 - local.get $3 i32.ne if local.get $2 @@ -8652,6 +9307,8 @@ local.get $3 local.set $1 end + local.get $5 + call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release local.get $1 @@ -8691,40 +9348,47 @@ call $~lib/util/number/utoa_dec_simple local.get $1 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $4 i32.const 0 i32.lt_s if + local.get $2 + call $~lib/rt/pure/__release i32.const 6064 return end - local.get $3 + local.get $4 i32.eqz if local.get $0 i32.load8_u call $~lib/util/number/utoa32 + local.get $2 + call $~lib/rt/pure/__release return end - local.get $3 - i32.const 6304 + local.get $4 + local.get $2 call $~lib/string/String#get:length - local.tee $4 + local.tee $5 i32.const 10 i32.add i32.mul i32.const 10 i32.add - local.tee $6 + local.tee $7 i32.const 1 i32.shl i32.const 1 @@ -8732,53 +9396,53 @@ call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.lt_s if local.get $1 - local.get $2 + local.get $3 local.get $0 - local.get $5 + local.get $6 i32.add i32.load8_u call $~lib/util/number/itoa_stream - local.get $2 + local.get $3 i32.add - local.set $2 - local.get $4 + local.set $3 + local.get $5 if local.get $1 - local.get $2 + local.get $3 i32.const 1 i32.shl i32.add - i32.const 6304 - local.get $4 + local.get $2 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.add - local.set $2 + local.set $3 end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end - local.get $6 + local.get $7 local.get $1 - local.get $2 - local.get $0 local.get $3 + local.get $0 + local.get $4 i32.add i32.load8_u call $~lib/util/number/itoa_stream - local.get $2 + local.get $3 i32.add local.tee $0 i32.gt_s @@ -8786,10 +9450,14 @@ local.get $1 local.get $0 call $~lib/string/String#substring + local.get $2 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release return end + local.get $2 + call $~lib/rt/pure/__release local.get $1 ) (func $~lib/array/Array#toString (param $0 i32) (result i32) @@ -8797,7 +9465,10 @@ i32.load offset=4 local.get $0 i32.load offset=12 + i32.const 6304 call $~lib/util/string/joinIntegerArray + i32.const 6304 + call $~lib/rt/pure/__release ) (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -8807,17 +9478,23 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + i32.const 6304 + call $~lib/rt/pure/__retain + local.set $5 local.get $1 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.const 0 i32.lt_s if + local.get $5 + call $~lib/rt/pure/__release i32.const 6064 return end - local.get $5 + local.get $6 i32.eqz if local.get $0 @@ -8835,18 +9512,20 @@ else i32.const 6064 end + local.get $5 + call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release return end i32.const 6064 local.set $1 - i32.const 6304 + local.get $5 call $~lib/string/String#get:length - local.set $7 + local.set $8 loop $for-loop|0 local.get $4 - local.get $5 + local.get $6 i32.lt_s if local.get $3 @@ -8872,9 +9551,9 @@ local.get $1 local.get $3 call $~lib/array/Array#toString - local.tee $6 + local.tee $7 call $~lib/string/String.__concat - local.tee $8 + local.tee $9 local.tee $2 i32.ne if @@ -8884,20 +9563,20 @@ local.get $1 call $~lib/rt/pure/__release end - local.get $6 + local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release local.get $2 local.set $1 end - local.get $7 + local.get $8 if local.get $1 local.tee $2 - i32.const 6304 + local.get $5 call $~lib/string/String.__concat - local.tee $6 + local.tee $7 local.tee $1 local.get $2 i32.ne @@ -8908,7 +9587,7 @@ local.get $2 call $~lib/rt/pure/__release end - local.get $6 + local.get $7 call $~lib/rt/pure/__release end local.get $4 @@ -8920,7 +9599,7 @@ end local.get $3 local.get $0 - local.get $5 + local.get $6 i32.const 2 i32.shl i32.add @@ -8959,29 +9638,36 @@ local.get $3 local.set $1 end + local.get $5 + call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $5 local.get $1 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.const 0 i32.lt_s if + local.get $5 + call $~lib/rt/pure/__release i32.const 6064 return end - local.get $5 + local.get $6 i32.eqz if local.get $0 @@ -9000,18 +9686,20 @@ else i32.const 6064 end + local.get $5 + call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release return end i32.const 6064 local.set $1 - i32.const 6304 + local.get $5 call $~lib/string/String#get:length - local.set $7 + local.set $8 loop $for-loop|0 local.get $4 - local.get $5 + local.get $6 i32.lt_s if local.get $3 @@ -9038,11 +9726,11 @@ call $~lib/array/Array#join local.tee $2 local.get $1 - local.get $1 local.get $2 call $~lib/string/String.__concat - local.tee $8 + local.tee $9 local.tee $2 + local.get $1 i32.ne if local.get $2 @@ -9052,18 +9740,18 @@ call $~lib/rt/pure/__release end call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release local.get $2 local.set $1 end - local.get $7 + local.get $8 if local.get $1 local.tee $2 - i32.const 6304 + local.get $5 call $~lib/string/String.__concat - local.tee $6 + local.tee $7 local.tee $1 local.get $2 i32.ne @@ -9074,7 +9762,7 @@ local.get $2 call $~lib/rt/pure/__release end - local.get $6 + local.get $7 call $~lib/rt/pure/__release end local.get $4 @@ -9085,7 +9773,7 @@ end end local.get $0 - local.get $5 + local.get $6 i32.const 2 i32.shl i32.add @@ -9107,11 +9795,11 @@ call $~lib/array/Array#join local.tee $0 local.get $1 - local.get $1 local.get $0 call $~lib/string/String.__concat local.tee $0 local.tee $3 + local.get $1 i32.ne if local.get $3 @@ -9126,6 +9814,8 @@ local.get $3 local.set $1 end + local.get $5 + call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release local.get $1 @@ -9135,7 +9825,10 @@ i32.load offset=4 local.get $0 i32.load offset=12 + i32.const 6304 call $~lib/util/string/joinReferenceArray<~lib/array/Array> + i32.const 6304 + call $~lib/rt/pure/__release ) (func $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -9145,17 +9838,23 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + i32.const 6304 + call $~lib/rt/pure/__retain + local.set $5 local.get $1 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.const 0 i32.lt_s if + local.get $5 + call $~lib/rt/pure/__release i32.const 6064 return end - local.get $5 + local.get $6 i32.eqz if local.get $0 @@ -9173,18 +9872,20 @@ else i32.const 6064 end + local.get $5 + call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release return end i32.const 6064 local.set $1 - i32.const 6304 + local.get $5 call $~lib/string/String#get:length - local.set $7 + local.set $8 loop $for-loop|0 local.get $4 - local.get $5 + local.get $6 i32.lt_s if local.get $3 @@ -9210,9 +9911,9 @@ local.get $1 local.get $3 call $~lib/array/Array<~lib/array/Array>#toString - local.tee $6 + local.tee $7 call $~lib/string/String.__concat - local.tee $8 + local.tee $9 local.tee $2 i32.ne if @@ -9222,20 +9923,20 @@ local.get $1 call $~lib/rt/pure/__release end - local.get $6 + local.get $7 call $~lib/rt/pure/__release - local.get $8 + local.get $9 call $~lib/rt/pure/__release local.get $2 local.set $1 end - local.get $7 + local.get $8 if local.get $1 local.tee $2 - i32.const 6304 + local.get $5 call $~lib/string/String.__concat - local.tee $6 + local.tee $7 local.tee $1 local.get $2 i32.ne @@ -9246,7 +9947,7 @@ local.get $2 call $~lib/rt/pure/__release end - local.get $6 + local.get $7 call $~lib/rt/pure/__release end local.get $4 @@ -9258,7 +9959,7 @@ end local.get $3 local.get $0 - local.get $5 + local.get $6 i32.const 2 i32.shl i32.add @@ -9297,6 +9998,8 @@ local.get $3 local.set $1 end + local.get $5 + call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release local.get $1 @@ -9545,17 +10248,17 @@ (local $11 i32) (local $12 i32) (local $13 i32) - (local $14 f32) - (local $15 f64) + (local $14 i32) + (local $15 i32) (local $16 i32) (local $17 i32) (local $18 i32) (local $19 i32) - (local $20 i32) + (local $20 f32) (local $21 i32) (local $22 i32) (local $23 i32) - (local $24 i32) + (local $24 f64) (local $25 i32) (local $26 i32) (local $27 i32) @@ -9597,39 +10300,49 @@ call $~lib/array/Array#constructor global.set $std/array/arr i32.const 0 + call $~lib/array/Array.isArray<~lib/array/Array | null> + if + i32.const 0 + i32.const 1296 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 call $std/array/Ref#constructor i32.const 12 i32.const 5 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.tee $1 + local.tee $2 i32.eqz if i32.const 12 i32.const 2 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 i32.const 1 i32.const 0 call $~lib/rt/tlsf/__alloc - local.tee $2 + local.tee $1 i32.const 0 i32.const 1 call $~lib/memory/memory.fill - local.get $2 - local.tee $0 local.get $1 + local.tee $0 + local.get $2 i32.load local.tee $4 i32.ne @@ -9640,16 +10353,17 @@ local.get $4 call $~lib/rt/pure/__release end - local.get $1 + local.get $2 local.get $0 i32.store - local.get $1 local.get $2 - i32.store offset=4 local.get $1 + i32.store offset=4 + local.get $2 i32.const 1 i32.store offset=8 global.get $std/array/arr + call $~lib/array/Array.isArray<~lib/array/Array | null> i32.eqz if i32.const 0 @@ -9660,7 +10374,7 @@ unreachable end call $~lib/rt/pure/__release - local.get $1 + local.get $2 call $~lib/rt/pure/__release i32.const 5 i32.const 0 @@ -9777,7 +10491,7 @@ i32.const 1664 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $9 call $std/array/isArraysEqual i32.eqz if @@ -9798,7 +10512,7 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $5 + local.get $9 call $~lib/rt/pure/__release i32.const 5 i32.const 2 @@ -9919,7 +10633,7 @@ i32.const 1936 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -9941,7 +10655,7 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $5 + local.get $9 call $~lib/rt/pure/__release global.get $std/array/arr i32.load offset=12 @@ -10214,27 +10928,27 @@ i32.store offset=4 local.get $0 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 0 i32.gt_s if local.get $0 i32.load offset=4 - local.tee $1 - local.get $2 + local.tee $2 + local.get $1 i32.const 2 i32.shl i32.add - local.set $2 + local.set $1 loop $do-continue|0 - local.get $1 + local.get $2 i32.load call $~lib/rt/pure/__release - local.get $1 + local.get $2 i32.const 4 i32.add - local.tee $1 - local.get $2 + local.tee $2 + local.get $1 i32.lt_u br_if $do-continue|0 end @@ -10593,7 +11307,7 @@ i32.const 2208 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10619,14 +11333,14 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $16 + local.tee $13 i32.const 5 i32.const 2 i32.const 3 i32.const 2304 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $20 + local.tee $25 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10651,14 +11365,14 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $25 + 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 $6 + local.tee $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10683,14 +11397,14 @@ i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $8 + local.tee $7 i32.const 5 i32.const 2 i32.const 3 i32.const 2496 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10715,14 +11429,14 @@ i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $11 + local.tee $28 i32.const 5 i32.const 2 i32.const 3 i32.const 2592 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $13 + local.tee $14 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10747,14 +11461,14 @@ i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $30 + local.tee $15 i32.const 5 i32.const 2 i32.const 3 i32.const 2688 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $17 + local.tee $16 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10779,14 +11493,14 @@ i32.const -2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $18 + local.tee $17 i32.const 5 i32.const 2 i32.const 3 i32.const 2784 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $19 + local.tee $18 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10836,22 +11550,21 @@ i32.const 2928 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $0 local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.tee $1 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.tee $22 + local.tee $19 i32.const 5 i32.const 2 i32.const 3 i32.const 2976 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $23 + local.tee $22 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10869,15 +11582,15 @@ i32.const 3024 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 -1 call $~lib/array/Array#copyWithin - local.tee $24 + local.tee $23 i32.const 5 i32.const 2 i32.const 3 @@ -10902,15 +11615,15 @@ i32.const 3120 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 2147483647 call $~lib/array/Array#copyWithin - local.tee $1 + local.tee $0 i32.const 5 i32.const 2 i32.const 3 @@ -10929,7 +11642,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release @@ -10937,11 +11650,9 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $16 + local.get $9 call $~lib/rt/pure/__release - local.get $20 + local.get $13 call $~lib/rt/pure/__release local.get $25 call $~lib/rt/pure/__release @@ -10949,33 +11660,35 @@ call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $9 + local.get $7 call $~lib/rt/pure/__release - local.get $11 + local.get $10 call $~lib/rt/pure/__release - local.get $13 + local.get $28 call $~lib/rt/pure/__release - local.get $30 + local.get $14 + call $~lib/rt/pure/__release + local.get $15 + call $~lib/rt/pure/__release + local.get $16 call $~lib/rt/pure/__release local.get $17 call $~lib/rt/pure/__release local.get $18 call $~lib/rt/pure/__release - local.get $19 - call $~lib/rt/pure/__release local.get $12 call $~lib/rt/pure/__release local.get $21 call $~lib/rt/pure/__release + local.get $19 + call $~lib/rt/pure/__release local.get $22 call $~lib/rt/pure/__release local.get $23 call $~lib/rt/pure/__release - local.get $24 - call $~lib/rt/pure/__release local.get $26 call $~lib/rt/pure/__release - local.get $1 + local.get $0 call $~lib/rt/pure/__release local.get $27 call $~lib/rt/pure/__release @@ -11369,30 +12082,30 @@ i32.const 2 i32.shl i32.add - local.set $1 + local.set $2 loop $while-continue|0 local.get $0 - local.get $1 + local.get $2 i32.lt_u if local.get $0 i32.load - local.set $2 + local.set $1 local.get $0 - local.get $1 + local.get $2 i32.load i32.store - local.get $1 local.get $2 + local.get $1 i32.store local.get $0 i32.const 4 i32.add local.set $0 - local.get $1 + local.get $2 i32.const 4 i32.sub - local.set $1 + local.set $2 br $while-continue|0 end end @@ -11653,7 +12366,7 @@ local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|022 + loop $while-continue|019 local.get $0 local.get $2 i32.lt_s @@ -11671,7 +12384,7 @@ i32.const 1 i32.add local.set $0 - br $while-continue|022 + br $while-continue|019 end end i32.const -1 @@ -11695,7 +12408,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $2 - local.set $5 + local.set $9 i32.const 0 local.set $0 block $__inlined_func$~lib/array/Array#indexOf @@ -11714,10 +12427,10 @@ local.set $0 br $__inlined_func$~lib/array/Array#indexOf end - local.get $5 + local.get $9 i32.load offset=4 local.set $4 - loop $while-continue|023 + loop $while-continue|020 local.get $0 local.get $3 i32.lt_s @@ -11735,7 +12448,7 @@ i32.const 1 i32.add local.set $0 - br $while-continue|023 + br $while-continue|020 end end i32.const -1 @@ -11902,41 +12615,41 @@ 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 $5 - loop $while-continue|024 + 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 $5 + local.get $9 local.get $0 i32.const 2 i32.shl i32.add f32.load - local.tee $14 + local.tee $20 f32.const nan:0x400000 f32.eq if (result i32) i32.const 1 else - local.get $14 - local.get $14 + local.get $20 + local.get $20 f32.ne end br_if $__inlined_func$~lib/array/Array#includes @@ -11945,7 +12658,7 @@ i32.const 1 i32.add local.set $0 - br $while-continue|024 + br $while-continue|021 end end i32.const 0 @@ -11961,7 +12674,7 @@ end block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $1 + local.set $2 i32.const 0 i32.const 1 i32.const 3 @@ -11969,7 +12682,7 @@ i32.const 3312 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $1 i32.load offset=12 local.tee $4 if (result i32) @@ -11981,38 +12694,38 @@ end br_if $__inlined_func$~lib/array/Array#includes drop - local.get $3 + local.get $1 i32.load offset=4 - local.set $16 - loop $while-continue|025 - local.get $1 + local.set $13 + loop $while-continue|022 + local.get $2 local.get $4 i32.lt_s if i32.const 1 - local.get $16 - local.get $1 + local.get $13 + local.get $2 i32.const 3 i32.shl i32.add f64.load - local.tee $15 + local.tee $24 f64.const nan:0x8000000000000 f64.eq if (result i32) i32.const 1 else - local.get $15 - local.get $15 + local.get $24 + local.get $24 f64.ne end br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $while-continue|025 + local.set $2 + br $while-continue|022 end end i32.const 0 @@ -12081,10 +12794,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 @@ -12121,7 +12834,7 @@ i32.const 3440 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $6 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12146,14 +12859,14 @@ i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.tee $6 + local.tee $8 i32.const 0 i32.const 2 i32.const 3 i32.const 3504 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $7 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12172,7 +12885,7 @@ i32.const 3520 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12197,14 +12910,14 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#splice - local.tee $11 + local.tee $14 i32.const 3 i32.const 2 i32.const 3 i32.const 3616 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $13 + local.tee $15 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12223,7 +12936,7 @@ i32.const 3648 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $17 + local.tee $16 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12241,21 +12954,21 @@ i32.const 3680 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $2 + local.set $0 local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $0 i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.tee $18 + local.tee $17 i32.const 2 i32.const 2 i32.const 3 i32.const 3728 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $19 + local.tee $18 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12267,7 +12980,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 3 i32.const 2 i32.const 3 @@ -12292,10 +13005,9 @@ i32.const 3792 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $0 - local.get $2 - call $~lib/rt/pure/__release local.get $0 + call $~lib/rt/pure/__release + local.tee $0 i32.const 0 i32.const 1 call $~lib/array/Array#splice @@ -12306,7 +13018,7 @@ i32.const 3840 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $22 + local.tee $19 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12325,7 +13037,7 @@ i32.const 3872 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $23 + local.tee $22 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12349,7 +13061,7 @@ i32.const -1 i32.const 2147483647 call $~lib/array/Array#splice - local.tee $24 + local.tee $23 i32.const 1 i32.const 2 i32.const 3 @@ -12399,14 +13111,14 @@ i32.const -2 i32.const 2147483647 call $~lib/array/Array#splice - local.tee $31 + local.tee $29 i32.const 2 i32.const 2 i32.const 3 i32.const 4064 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $32 + local.tee $30 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12425,7 +13137,7 @@ i32.const 4096 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $33 + local.tee $31 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12449,14 +13161,14 @@ i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.tee $28 + local.tee $32 i32.const 1 i32.const 2 i32.const 3 i32.const 4176 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $29 + local.tee $33 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12799,7 +13511,7 @@ local.tee $2 i32.const 1 call $~lib/array/Array#splice - local.tee $20 + local.tee $13 i32.load offset=12 if i32.const 0 @@ -12825,7 +13537,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $16 + local.tee $9 i32.load offset=4 local.tee $0 i32.const 1 @@ -12849,11 +13561,11 @@ i32.store offset=16 local.get $2 call $~lib/rt/pure/__release - local.get $16 + local.get $9 i32.const 2 call $~lib/array/Array#splice local.set $25 - local.get $20 + local.get $13 call $~lib/rt/pure/__release local.get $25 i32.load offset=12 @@ -12897,7 +13609,7 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $9 i32.load offset=12 i32.const 3 i32.ne @@ -12909,7 +13621,7 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $9 i32.const 0 call $~lib/array/Array#__get local.tee $57 @@ -12924,7 +13636,7 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $9 i32.const 1 call $~lib/array/Array#__get local.tee $58 @@ -12939,7 +13651,7 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $9 i32.const 2 call $~lib/array/Array#__get local.tee $59 @@ -12960,7 +13672,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $20 + local.tee $13 i32.load offset=4 local.tee $0 i32.const 1 @@ -12973,9 +13685,9 @@ i32.const 2 call $std/array/Ref#constructor i32.store offset=8 - local.get $20 + local.get $13 call $~lib/array/Array#splice - local.tee $30 + local.tee $28 i32.load offset=12 i32.const 1 i32.ne @@ -12987,7 +13699,7 @@ call $~lib/builtins/abort unreachable end - local.get $30 + local.get $28 i32.const 0 call $~lib/array/Array#__get local.tee $0 @@ -13012,7 +13724,7 @@ call $~lib/builtins/abort unreachable end - local.get $20 + local.get $13 i32.load offset=12 i32.const 2 i32.ne @@ -13024,7 +13736,7 @@ call $~lib/builtins/abort unreachable end - local.get $20 + local.get $13 i32.const 0 call $~lib/array/Array#__get local.tee $60 @@ -13036,7 +13748,7 @@ call $~lib/builtins/abort unreachable end - local.get $20 + local.get $13 i32.const 1 call $~lib/array/Array#__get local.tee $2 @@ -13067,48 +13779,48 @@ 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 local.get $8 call $~lib/rt/pure/__release - local.get $9 + local.get $7 call $~lib/rt/pure/__release - local.get $11 + local.get $10 call $~lib/rt/pure/__release - local.get $13 + local.get $14 + call $~lib/rt/pure/__release + local.get $15 + call $~lib/rt/pure/__release + local.get $16 call $~lib/rt/pure/__release local.get $17 call $~lib/rt/pure/__release local.get $18 call $~lib/rt/pure/__release - local.get $19 - call $~lib/rt/pure/__release local.get $12 call $~lib/rt/pure/__release local.get $21 call $~lib/rt/pure/__release + local.get $19 + call $~lib/rt/pure/__release local.get $22 call $~lib/rt/pure/__release local.get $23 call $~lib/rt/pure/__release - local.get $24 - call $~lib/rt/pure/__release local.get $26 call $~lib/rt/pure/__release local.get $27 call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + local.get $30 + call $~lib/rt/pure/__release local.get $31 call $~lib/rt/pure/__release local.get $32 call $~lib/rt/pure/__release local.get $33 call $~lib/rt/pure/__release - local.get $28 - call $~lib/rt/pure/__release - local.get $29 - call $~lib/rt/pure/__release local.get $36 call $~lib/rt/pure/__release local.get $37 @@ -13635,17 +14347,17 @@ unreachable end loop $for-loop|0 - local.get $7 + local.get $5 i32.const 100 i32.lt_s if global.get $std/array/arr call $~lib/array/Array#pop drop - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|0 end end @@ -13662,7 +14374,7 @@ i32.const 3 call $~lib/array/Array#push i32.const 0 - local.set $1 + local.set $0 global.get $std/array/arr local.tee $2 i32.load offset=12 @@ -13672,11 +14384,11 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $1 i32.load offset=4 local.set $4 - loop $for-loop|043 - local.get $1 + loop $for-loop|040 + local.get $0 local.get $3 local.get $2 i32.load offset=12 @@ -13687,7 +14399,7 @@ select i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl local.tee $5 @@ -13695,21 +14407,21 @@ i32.load offset=4 i32.add i32.load - local.set $7 + f32.convert_i32_s + local.set $20 local.get $4 local.get $5 i32.add - local.get $7 - f32.convert_i32_s + local.get $20 f32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|043 + local.set $0 + br $for-loop|040 end end - local.get $0 + local.get $1 i32.load offset=12 i32.const 4 i32.ne @@ -13721,7 +14433,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 @@ -13830,7 +14542,7 @@ global.get $std/array/arr i32.const 3 call $~lib/array/Array#push - local.get $0 + local.get $1 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 26 @@ -14256,41 +14968,41 @@ i32.const 5280 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $4 i32.load offset=12 local.tee $5 i32.const 1 i32.le_s if - local.get $3 + local.get $4 call $~lib/rt/pure/__retain br $__inlined_func$~lib/array/Array#sort end - local.get $3 + local.get $4 i32.load offset=4 - local.set $4 + local.set $3 local.get $5 i32.const 2 i32.eq if - local.get $4 + local.get $3 f32.load offset=4 - local.tee $14 - local.get $4 + local.tee $20 + local.get $3 f32.load local.tee $34 call $~lib/util/sort/COMPARATOR~anonymous|0 i32.const 0 i32.lt_s if - local.get $4 + local.get $3 local.get $34 f32.store offset=4 - local.get $4 - local.get $14 + local.get $3 + local.get $20 f32.store end - local.get $3 + local.get $4 call $~lib/rt/pure/__retain br $__inlined_func$~lib/array/Array#sort end @@ -14300,18 +15012,18 @@ if i32.const 0 local.set $2 - loop $for-loop|00 + loop $for-loop|02 local.get $2 local.get $5 i32.lt_s if - local.get $4 + local.get $3 local.get $2 i32.const 2 i32.shl i32.add f32.load - local.set $14 + local.set $20 local.get $2 i32.const 1 i32.sub @@ -14321,8 +15033,8 @@ i32.const 0 i32.ge_s if - local.get $14 - local.get $4 + local.get $20 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -14338,7 +15050,7 @@ i32.const 1 i32.sub local.set $0 - local.get $4 + local.get $3 local.get $1 i32.const 1 i32.add @@ -14351,99 +15063,40 @@ end end end - local.get $4 + local.get $3 local.get $0 i32.const 1 i32.add i32.const 2 i32.shl i32.add - local.get $14 + local.get $20 f32.store local.get $2 i32.const 1 i32.add local.set $2 - br $for-loop|00 + br $for-loop|02 end end else - local.get $4 + local.get $3 local.get $5 call $~lib/util/sort/weakHeapSort end - local.get $3 + local.get $4 call $~lib/rt/pure/__retain end call $~lib/rt/pure/__release - block $__inlined_func$std/array/isArraysEqual (result i32) - i32.const 8 - i32.const 2 - i32.const 9 - i32.const 5328 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $7 - i32.const 0 - local.set $1 - block $folding-inner0 - local.get $3 - i32.load offset=12 - local.tee $2 - local.get $7 - i32.load offset=12 - i32.ne - br_if $folding-inner0 - i32.const 1 - local.get $3 - local.get $7 - i32.eq - br_if $__inlined_func$std/array/isArraysEqual - drop - loop $for-loop|001 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $1 - call $~lib/array/Array#__get - local.tee $14 - local.get $14 - f32.ne - if (result i32) - local.get $7 - local.get $1 - call $~lib/array/Array#__get - local.tee $14 - local.get $14 - f32.ne - else - i32.const 0 - end - i32.eqz - if - local.get $3 - local.get $1 - call $~lib/array/Array#__get - local.get $7 - local.get $1 - call $~lib/array/Array#__get - f32.ne - br_if $folding-inner0 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|001 - end - end - i32.const 1 - br $__inlined_func$std/array/isArraysEqual - end - i32.const 0 - end + local.get $4 + i32.const 8 + i32.const 2 + i32.const 9 + i32.const 5328 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $18 + call $std/array/isArraysEqual i32.eqz if i32.const 0 @@ -14460,41 +15113,41 @@ i32.const 5376 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $5 i32.load offset=12 local.tee $6 i32.const 1 i32.le_s if - local.get $4 + local.get $5 call $~lib/rt/pure/__retain br $__inlined_func$~lib/array/Array#sort end - local.get $4 + local.get $5 i32.load offset=4 - local.set $5 + local.set $3 local.get $6 i32.const 2 i32.eq if - local.get $5 + local.get $3 f64.load offset=8 - local.tee $15 - local.get $5 + local.tee $24 + local.get $3 f64.load local.tee $35 call $~lib/util/sort/COMPARATOR~anonymous|0 i32.const 0 i32.lt_s if - local.get $5 + local.get $3 local.get $35 f64.store offset=8 - local.get $5 - local.get $15 + local.get $3 + local.get $24 f64.store end - local.get $4 + local.get $5 call $~lib/rt/pure/__retain br $__inlined_func$~lib/array/Array#sort end @@ -14504,29 +15157,29 @@ if i32.const 0 local.set $2 - loop $for-loop|02 + loop $for-loop|03 local.get $2 local.get $6 i32.lt_s if - local.get $5 + local.get $3 local.get $2 i32.const 3 i32.shl i32.add f64.load - local.set $15 + local.set $24 local.get $2 i32.const 1 i32.sub local.set $0 - loop $while-continue|13 + loop $while-continue|14 local.get $0 i32.const 0 i32.ge_s if - local.get $15 - local.get $5 + local.get $24 + local.get $3 local.get $0 i32.const 3 i32.shl @@ -14538,116 +15191,57 @@ i32.lt_s if local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $5 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $35 - f64.store - br $while-continue|13 - end - end - end - local.get $5 - local.get $0 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $15 - f64.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|02 - end - end - else - local.get $5 - local.get $6 - call $~lib/util/sort/weakHeapSort - end - local.get $4 - call $~lib/rt/pure/__retain - end - call $~lib/rt/pure/__release - block $__inlined_func$std/array/isArraysEqual (result i32) - i32.const 8 - i32.const 3 - i32.const 10 - i32.const 5456 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $2 - i32.const 0 - local.set $1 - block $folding-inner01 - local.get $4 - i32.load offset=12 - local.tee $5 - local.get $2 - i32.load offset=12 - i32.ne - br_if $folding-inner01 - i32.const 1 - local.get $2 - local.get $4 - i32.eq - br_if $__inlined_func$std/array/isArraysEqual - drop - loop $for-loop|025 - local.get $1 - local.get $5 - i32.lt_s - if - local.get $4 - local.get $1 - call $~lib/array/Array#__get - local.tee $15 - local.get $15 - f64.ne - if (result i32) - local.get $2 - local.get $1 - call $~lib/array/Array#__get - local.tee $15 - local.get $15 - f64.ne - else - i32.const 0 - end - i32.eqz - if - local.get $4 - local.get $1 - call $~lib/array/Array#__get - local.get $2 - local.get $1 - call $~lib/array/Array#__get - f64.ne - br_if $folding-inner01 + 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 $1 + local.get $3 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|025 + 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 - i32.const 1 - br $__inlined_func$std/array/isArraysEqual + else + local.get $3 + local.get $6 + call $~lib/util/sort/weakHeapSort end - i32.const 0 + local.get $5 + call $~lib/rt/pure/__retain end + call $~lib/rt/pure/__release + local.get $5 + i32.const 8 + i32.const 3 + i32.const 10 + i32.const 5456 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $12 + call $std/array/isArraysEqual i32.eqz if i32.const 0 @@ -14663,11 +15257,11 @@ i32.const 5536 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $17 + local.tee $14 i32.const 46 call $~lib/array/Array#sort call $~lib/rt/pure/__release - local.get $17 + local.get $14 i32.const 5 i32.const 2 i32.const 3 @@ -14692,18 +15286,18 @@ i32.const 5632 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $18 + local.tee $15 i32.const 47 call $~lib/array/Array#sort call $~lib/rt/pure/__release - local.get $18 + local.get $15 i32.const 5 i32.const 2 i32.const 7 i32.const 5680 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $22 + local.tee $19 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14721,7 +15315,7 @@ i32.const 5728 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $19 + local.set $16 i32.const 1 i32.const 2 i32.const 3 @@ -14735,14 +15329,14 @@ i32.const 5776 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $5 + local.set $2 i32.const 4 i32.const 2 i32.const 3 i32.const 5808 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $6 + local.set $3 i32.const 4 i32.const 2 i32.const 3 @@ -14752,25 +15346,23 @@ local.set $0 i32.const 64 call $std/array/createReverseOrderedArray - local.set $8 + local.set $6 i32.const 128 call $std/array/createReverseOrderedArray - local.set $9 + local.set $8 i32.const 1024 call $std/array/createReverseOrderedArray - local.set $11 + local.set $7 i32.const 10000 call $std/array/createReverseOrderedArray - local.set $13 + local.set $10 i32.const 512 call $std/array/createRandomOrderedArray - local.set $12 - local.get $19 - i32.const 48 - call $std/array/assertSorted + local.set $17 + local.get $16 + call $std/array/assertSortedDefault local.get $1 - i32.const 48 - call $std/array/assertSorted + call $std/array/assertSortedDefault local.get $1 i32.const 1 i32.const 2 @@ -14778,7 +15370,7 @@ i32.const 5872 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $23 + local.tee $22 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14790,17 +15382,16 @@ call $~lib/builtins/abort unreachable end - local.get $5 - i32.const 48 - call $std/array/assertSorted - local.get $5 + local.get $2 + call $std/array/assertSortedDefault + local.get $2 i32.const 2 i32.const 2 i32.const 3 i32.const 5904 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $24 + local.tee $23 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14812,10 +15403,9 @@ call $~lib/builtins/abort unreachable end - local.get $6 - i32.const 48 - call $std/array/assertSorted - local.get $6 + local.get $3 + call $std/array/assertSortedDefault + local.get $3 local.get $0 i32.const 0 call $std/array/isArraysEqual @@ -14828,10 +15418,9 @@ call $~lib/builtins/abort unreachable end - local.get $8 - i32.const 48 - call $std/array/assertSorted - local.get $8 + local.get $6 + call $std/array/assertSortedDefault + local.get $6 local.get $0 i32.const 4 call $std/array/isArraysEqual @@ -14844,10 +15433,9 @@ call $~lib/builtins/abort unreachable end - local.get $9 - i32.const 48 - call $std/array/assertSorted - local.get $9 + local.get $8 + call $std/array/assertSortedDefault + local.get $8 local.get $0 i32.const 4 call $std/array/isArraysEqual @@ -14860,10 +15448,9 @@ call $~lib/builtins/abort unreachable end - local.get $11 - i32.const 48 - call $std/array/assertSorted - local.get $11 + local.get $7 + call $std/array/assertSortedDefault + local.get $7 local.get $0 i32.const 4 call $std/array/isArraysEqual @@ -14876,10 +15463,9 @@ call $~lib/builtins/abort unreachable end - local.get $13 - i32.const 48 - call $std/array/assertSorted - local.get $13 + local.get $10 + call $std/array/assertSortedDefault + local.get $10 local.get $0 i32.const 4 call $std/array/isArraysEqual @@ -14892,49 +15478,48 @@ call $~lib/builtins/abort unreachable end - local.get $12 - i32.const 48 - call $std/array/assertSorted - local.get $3 + local.get $17 + call $std/array/assertSortedDefault + local.get $4 call $~lib/rt/pure/__release - local.get $7 + local.get $18 call $~lib/rt/pure/__release - local.get $4 + local.get $5 call $~lib/rt/pure/__release - local.get $2 + local.get $12 call $~lib/rt/pure/__release - local.get $17 + local.get $14 call $~lib/rt/pure/__release local.get $21 call $~lib/rt/pure/__release - local.get $18 - call $~lib/rt/pure/__release - local.get $22 + local.get $15 call $~lib/rt/pure/__release local.get $19 call $~lib/rt/pure/__release + local.get $16 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $2 call $~lib/rt/pure/__release - local.get $6 + local.get $3 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $9 + local.get $7 call $~lib/rt/pure/__release - local.get $11 + local.get $10 call $~lib/rt/pure/__release - local.get $13 + local.get $17 call $~lib/rt/pure/__release - local.get $12 + local.get $22 call $~lib/rt/pure/__release local.get $23 call $~lib/rt/pure/__release - local.get $24 - call $~lib/rt/pure/__release i32.const 64 call $std/array/createRandomOrderedArray local.set $0 @@ -14982,55 +15567,61 @@ i32.const 6128 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $7 + local.set $8 block $__inlined_func$std/array/isSorted<~lib/string/String | null> (result i32) i32.const 1 - local.set $1 + local.set $2 local.get $5 + call $~lib/rt/pure/__retain + local.tee $4 i32.const 55 call $~lib/array/Array<~lib/array/Array>#sort + local.tee $6 + call $~lib/rt/pure/__retain local.tee $0 - local.set $2 - local.get $0 i32.load offset=12 - local.set $6 - loop $for-loop|03 - local.get $1 - local.get $6 + local.set $7 + loop $for-loop|00 + local.get $2 + local.get $7 i32.lt_s if + local.get $0 local.get $2 - local.get $1 i32.const 1 i32.sub call $~lib/array/Array#__get - local.tee $3 + local.tee $1 + local.get $0 local.get $2 - local.get $1 call $~lib/array/Array#__get - local.tee $4 + local.tee $3 call $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 i32.const 0 i32.gt_s if - local.get $3 + local.get $0 call $~lib/rt/pure/__release - local.get $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 call $~lib/rt/pure/__release i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String | null> end - local.get $3 + local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $3 call $~lib/rt/pure/__release - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|03 + local.set $2 + br $for-loop|00 end end + local.get $0 + call $~lib/rt/pure/__release i32.const 1 end i32.eqz @@ -15042,62 +15633,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $6 call $~lib/rt/pure/__release - block $__inlined_func$std/array/isArraysEqual<~lib/string/String | null> (result i32) - i32.const 0 - local.set $1 - i32.const 0 - local.get $5 - i32.load offset=12 - local.tee $3 - local.get $7 - i32.load offset=12 - i32.ne - br_if $__inlined_func$std/array/isArraysEqual<~lib/string/String | null> - drop - i32.const 1 - local.get $5 - local.get $7 - i32.eq - br_if $__inlined_func$std/array/isArraysEqual<~lib/string/String | null> - drop - loop $for-loop|04 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $5 - local.get $1 - call $~lib/array/Array#__get - local.tee $0 - local.get $7 - local.get $1 - call $~lib/array/Array#__get - local.tee $2 - call $~lib/string/String.__eq - i32.eqz - if - local.get $0 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - i32.const 0 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String | null> - end - local.get $0 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|04 - end - end - i32.const 1 - end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + local.get $8 + call $std/array/isArraysEqual<~lib/string/String | null> i32.eqz if i32.const 0 @@ -15108,34 +15650,34 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 i32.const 16 i32.const 16 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 0 i32.store offset=12 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.get $2 local.set $3 - local.get $0 local.get $2 + local.get $1 i32.load local.tee $4 i32.ne @@ -15146,37 +15688,37 @@ local.get $4 call $~lib/rt/pure/__release end - local.get $2 + local.get $1 local.get $3 i32.store + local.get $1 local.get $2 - local.get $0 i32.store offset=4 - local.get $2 + local.get $1 i32.const 1600 i32.store offset=8 - local.get $2 + local.get $1 i32.const 400 i32.store offset=12 loop $for-loop|09 - local.get $1 + local.get $0 i32.const 400 i32.lt_s if - local.get $1 + local.get $0 local.set $3 call $~lib/math/NativeMath.random f64.const 32 f64.mul i32.trunc_f64_s - local.set $8 + local.set $7 i32.const 0 local.set $6 i32.const 6064 local.set $0 loop $for-loop|01 local.get $6 - local.get $8 + local.get $7 i32.lt_s if block $__inlined_func$~lib/string/String#charAt (result i32) @@ -15188,7 +15730,7 @@ f64.mul f64.floor i32.trunc_f64_s - local.tee $1 + local.tee $2 i32.const 5088 call $~lib/string/String#get:length i32.ge_u @@ -15198,7 +15740,7 @@ i32.const 1 call $~lib/rt/tlsf/__alloc local.tee $4 - local.get $1 + local.get $2 i32.const 1 i32.shl i32.const 5088 @@ -15208,13 +15750,13 @@ local.get $4 call $~lib/rt/pure/__retain end - local.set $1 + local.set $2 local.get $0 local.tee $4 local.get $0 - local.get $1 + local.get $2 call $~lib/string/String.__concat - local.tee $9 + local.tee $10 local.tee $0 i32.ne if @@ -15224,9 +15766,9 @@ local.get $4 call $~lib/rt/pure/__release end - local.get $1 + local.get $2 call $~lib/rt/pure/__release - local.get $9 + local.get $10 call $~lib/rt/pure/__release local.get $6 i32.const 1 @@ -15235,7 +15777,7 @@ br $for-loop|01 end end - local.get $2 + local.get $1 local.get $3 local.get $0 call $~lib/array/Array<~lib/array/Array>#__set @@ -15244,18 +15786,18 @@ local.get $3 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|09 end end - local.get $2 + local.get $1 i32.const 56 call $std/array/assertSorted<~lib/array/Array> local.get $5 call $~lib/rt/pure/__release - local.get $7 + local.get $8 call $~lib/rt/pure/__release - local.get $2 + local.get $1 call $~lib/rt/pure/__release i32.const 2 i32.const 0 @@ -15268,7 +15810,10 @@ local.get $0 i32.load offset=12 call $~lib/util/string/joinBooleanArray - local.tee $4 + local.set $1 + i32.const 6304 + call $~lib/rt/pure/__release + local.get $1 i32.const 6336 call $~lib/string/String.__eq i32.eqz @@ -15286,10 +15831,10 @@ i32.const 6384 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $6 i32.const 6064 call $~lib/array/Array#join - local.tee $7 + local.tee $8 i32.const 6736 call $~lib/string/String.__eq i32.eqz @@ -15307,10 +15852,10 @@ i32.const 6768 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $7 i32.const 6800 call $~lib/array/Array#join - local.tee $8 + local.tee $10 i32.const 6736 call $~lib/string/String.__eq i32.eqz @@ -15328,10 +15873,10 @@ i32.const 6832 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $14 i32.const 6864 call $~lib/array/Array#join - local.tee $11 + local.tee $15 i32.const 6896 call $~lib/string/String.__eq i32.eqz @@ -15349,12 +15894,15 @@ i32.const 6960 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 + local.tee $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=12 call $~lib/util/string/joinFloatArray - local.tee $13 + local.set $3 + i32.const 7024 + call $~lib/rt/pure/__release + local.get $3 i32.const 8112 call $~lib/string/String.__eq i32.eqz @@ -15372,10 +15920,10 @@ i32.const 8240 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $17 + local.tee $16 i32.const 6064 call $~lib/array/Array<~lib/string/String | null>#join - local.tee $18 + local.tee $17 i32.const 8208 call $~lib/string/String.__eq i32.eqz @@ -15393,22 +15941,22 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $2 + local.tee $4 i32.load offset=4 - local.tee $3 + local.tee $5 i32.const 0 call $std/array/Ref#constructor i32.store - local.get $3 + local.get $5 i32.const 0 i32.store offset=4 - local.get $3 + local.get $5 i32.const 0 call $std/array/Ref#constructor i32.store offset=8 - local.get $2 + local.get $4 call $~lib/array/Array#join - local.tee $19 + local.tee $18 i32.const 8320 call $~lib/string/String.__eq i32.eqz @@ -15426,7 +15974,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $5 i32.load offset=4 local.tee $12 i32.const 0 @@ -15436,7 +15984,7 @@ i32.const 0 call $std/array/Ref#constructor i32.store offset=4 - local.get $3 + local.get $5 call $~lib/array/Array#join local.tee $12 i32.const 8400 @@ -15452,33 +16000,33 @@ end local.get $0 call $~lib/rt/pure/__release - local.get $4 + local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $6 + call $~lib/rt/pure/__release + local.get $8 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release - local.get $6 + local.get $10 call $~lib/rt/pure/__release - local.get $8 + local.get $14 call $~lib/rt/pure/__release - local.get $9 + local.get $15 call $~lib/rt/pure/__release - local.get $11 + local.get $2 call $~lib/rt/pure/__release - local.get $1 + local.get $3 call $~lib/rt/pure/__release - local.get $13 + local.get $16 call $~lib/rt/pure/__release local.get $17 call $~lib/rt/pure/__release - local.get $18 - call $~lib/rt/pure/__release - local.get $2 + local.get $4 call $~lib/rt/pure/__release - local.get $19 + local.get $18 call $~lib/rt/pure/__release - local.get $3 + local.get $5 call $~lib/rt/pure/__release local.get $12 call $~lib/rt/pure/__release @@ -15509,7 +16057,7 @@ i32.const 8560 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $7 + local.set $6 local.get $3 i32.const 6304 call $~lib/array/Array#join @@ -15530,7 +16078,7 @@ i32.const 6304 call $~lib/array/Array#join local.tee $0 - local.set $17 + local.set $23 local.get $0 i32.const 8208 call $~lib/string/String.__eq @@ -15547,7 +16095,7 @@ i32.const 6304 call $~lib/array/Array#join local.tee $0 - local.set $18 + local.set $26 local.get $0 i32.const 8592 call $~lib/string/String.__eq @@ -15560,11 +16108,11 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 i32.const 6304 call $~lib/array/Array#join local.tee $0 - local.set $19 + local.set $27 local.get $0 i32.const 8624 call $~lib/string/String.__eq @@ -15583,14 +16131,15 @@ i32.const 8656 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $8 i32.load offset=4 - local.get $6 + local.get $8 i32.load offset=12 call $~lib/util/string/joinIntegerArray - local.tee $0 - local.set $12 - local.get $0 + local.set $7 + i32.const 6304 + call $~lib/rt/pure/__release + local.get $7 i32.const 8688 call $~lib/string/String.__eq i32.eqz @@ -15608,14 +16157,15 @@ i32.const 8720 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $10 i32.load offset=4 - local.get $8 + local.get $10 i32.load offset=12 call $~lib/util/string/joinIntegerArray - local.tee $0 - local.set $21 - local.get $0 + local.set $14 + i32.const 6304 + call $~lib/rt/pure/__release + local.get $14 i32.const 8752 call $~lib/string/String.__eq i32.eqz @@ -15633,14 +16183,15 @@ i32.const 8800 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $15 i32.load offset=4 - local.get $9 + local.get $15 i32.load offset=12 call $~lib/util/string/joinIntegerArray - local.tee $0 - local.set $22 - local.get $0 + local.set $16 + i32.const 6304 + call $~lib/rt/pure/__release + local.get $16 i32.const 8848 call $~lib/string/String.__eq i32.eqz @@ -15658,14 +16209,15 @@ i32.const 8912 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $11 + local.tee $17 i32.load offset=4 - local.get $11 + local.get $17 i32.load offset=12 call $~lib/util/string/joinIntegerArray - local.tee $0 - local.set $23 - local.get $0 + local.set $18 + i32.const 6304 + call $~lib/rt/pure/__release + local.get $18 i32.const 8960 call $~lib/string/String.__eq i32.eqz @@ -15683,11 +16235,11 @@ i32.const 9072 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $24 + local.tee $29 i32.const 6304 call $~lib/array/Array<~lib/string/String | null>#join local.tee $0 - local.set $26 + local.set $30 local.get $0 i32.const 9120 call $~lib/string/String.__eq @@ -15706,11 +16258,11 @@ i32.const 9232 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $27 + local.tee $31 i32.const 6304 call $~lib/array/Array<~lib/string/String | null>#join local.tee $0 - local.set $31 + local.set $32 local.get $0 i32.const 9264 call $~lib/string/String.__eq @@ -15752,9 +16304,10 @@ local.get $0 i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array> - local.tee $1 - local.set $32 - local.get $1 + local.set $12 + i32.const 6304 + call $~lib/rt/pure/__release + local.get $12 i32.const 9360 call $~lib/string/String.__eq i32.eqz @@ -15795,9 +16348,10 @@ local.get $1 i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array> - local.tee $2 - local.set $33 - local.get $2 + local.set $21 + i32.const 6304 + call $~lib/rt/pure/__release + local.get $21 i32.const 9360 call $~lib/string/String.__eq i32.eqz @@ -15823,7 +16377,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $29 + local.tee $33 i32.load offset=4 i32.const 1 i32.const 2 @@ -15832,16 +16386,17 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $29 + local.get $33 i32.store local.get $2 i32.load offset=4 local.get $2 i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> - local.tee $28 - local.set $29 - local.get $28 + local.set $19 + i32.const 6304 + call $~lib/rt/pure/__release + local.get $19 i32.const 8208 call $~lib/string/String.__eq i32.eqz @@ -15859,44 +16414,44 @@ call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - call $~lib/rt/pure/__release - local.get $17 + local.get $6 call $~lib/rt/pure/__release - local.get $18 call $~lib/rt/pure/__release - local.get $19 + local.get $23 call $~lib/rt/pure/__release - local.get $6 + local.get $26 call $~lib/rt/pure/__release - local.get $12 + local.get $27 call $~lib/rt/pure/__release local.get $8 call $~lib/rt/pure/__release - local.get $21 + local.get $7 call $~lib/rt/pure/__release - local.get $9 + local.get $10 call $~lib/rt/pure/__release - local.get $22 + local.get $14 call $~lib/rt/pure/__release - local.get $11 + local.get $15 call $~lib/rt/pure/__release - local.get $23 + local.get $16 call $~lib/rt/pure/__release - local.get $24 + local.get $17 call $~lib/rt/pure/__release - local.get $26 + local.get $18 call $~lib/rt/pure/__release - local.get $27 + local.get $29 + call $~lib/rt/pure/__release + local.get $30 call $~lib/rt/pure/__release local.get $31 call $~lib/rt/pure/__release local.get $32 call $~lib/rt/pure/__release - local.get $33 + local.get $12 call $~lib/rt/pure/__release - local.get $29 + local.get $21 + call $~lib/rt/pure/__release + local.get $19 call $~lib/rt/pure/__release global.get $std/array/arr call $~lib/rt/pure/__release @@ -15942,7 +16497,7 @@ i32.store offset=12 local.get $5 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $7 + local.tee $6 i32.load offset=12 i32.const 10 i32.ne @@ -15955,14 +16510,14 @@ unreachable end loop $for-loop|1 - local.get $10 + local.get $11 i32.const 10 i32.lt_s if - local.get $7 - local.get $10 + local.get $6 + local.get $11 call $~lib/array/Array#__get - local.get $10 + local.get $11 i32.ne if i32.const 0 @@ -15972,10 +16527,10 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 i32.const 1 i32.add - local.set $10 + local.set $11 br $for-loop|1 end end @@ -15985,7 +16540,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $8 i32.load offset=4 local.tee $3 i32.const 1 @@ -16019,7 +16574,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=12 - local.get $6 + local.get $8 call $~lib/array/Array<~lib/array/Array<~lib/string/String | null>>#flat local.set $3 i32.const 8 @@ -16042,21 +16597,21 @@ unreachable end i32.const 0 - local.set $10 + local.set $11 loop $for-loop|2 - local.get $10 + local.get $11 local.get $4 i32.load offset=12 i32.lt_s if local.get $3 - local.get $10 + local.get $11 call $~lib/array/Array#__get - local.tee $8 + local.tee $7 local.get $4 - local.get $10 + local.get $11 call $~lib/array/Array#__get - local.tee $9 + local.tee $10 call $~lib/string/String.__eq i32.eqz if @@ -16067,14 +16622,14 @@ call $~lib/builtins/abort unreachable end - local.get $8 - call $~lib/rt/pure/__release - local.get $9 + local.get $7 call $~lib/rt/pure/__release local.get $10 + call $~lib/rt/pure/__release + local.get $11 i32.const 1 i32.add - local.set $10 + local.set $11 br $for-loop|2 end end @@ -16084,9 +16639,9 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $10 + local.tee $11 i32.load offset=4 - local.tee $8 + local.tee $7 i32.const 0 i32.const 2 i32.const 3 @@ -16094,7 +16649,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $8 + local.get $7 i32.const 0 i32.const 2 i32.const 3 @@ -16102,9 +16657,9 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 - local.get $10 + local.get $11 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $8 + local.tee $7 i32.load offset=12 if i32.const 0 @@ -16114,17 +16669,17 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 call $~lib/rt/pure/__release - local.get $8 + local.get $7 call $~lib/rt/pure/__release - local.get $16 + local.get $9 call $~lib/rt/pure/__release local.get $25 call $~lib/rt/pure/__release - local.get $20 + local.get $13 call $~lib/rt/pure/__release - local.get $30 + local.get $28 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release @@ -16134,10 +16689,10 @@ 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 $8 + call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release local.get $4 diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index cf7c245122..59e2729028 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -1784,6 +1784,42 @@ call $~lib/builtins/abort unreachable end + block $__inlined_func$~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array | null> (result i32) + i32.const 0 + call $~lib/rt/pure/__release + i32.const 0 + br $__inlined_func$~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array | null> + end + if + i32.const 0 + i32.const 1312 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $~lib/rt/pure/__release + i32.const 0 + if + i32.const 0 + i32.const 1312 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $~lib/rt/pure/__release + i32.const 0 + if + i32.const 0 + i32.const 1312 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 12 i32.const 5 call $~lib/rt/tlsf/__alloc @@ -1826,11 +1862,11 @@ local.set $4 local.get $6 i32.load - local.tee $1 + local.tee $0 i32.const 16 i32.sub i32.load offset=12 - local.tee $0 + local.tee $1 local.set $3 i32.const 12 i32.const 15 @@ -1845,11 +1881,13 @@ local.get $8 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1073741808 i32.gt_u - local.get $0 local.get $1 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $1 i32.const 16 i32.sub i32.load offset=12 @@ -1886,6 +1924,8 @@ local.get $8 local.get $3 i32.store offset=8 + local.get $1 + call $~lib/rt/pure/__release local.get $9 call $~lib/rt/pure/__release local.get $7 diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index cca8c7293e..287ea4443b 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -1229,6 +1229,8 @@ local.get $2 i32.add local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.const 16 i32.sub i32.load offset=12 @@ -1267,6 +1269,8 @@ local.get $4 local.get $2 i32.store offset=8 + local.get $0 + call $~lib/rt/pure/__release local.get $4 ) (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (param $0 i32) (result i32) diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index 3936b0622e..ad89e87f5c 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -1515,7 +1515,7 @@ i32.const 24 i32.shr_s call $~lib/util/hash/hash8 - local.tee $4 + local.tee $5 call $~lib/map/Map#find local.tee $3 if @@ -1554,14 +1554,17 @@ end local.get $0 i32.load offset=8 + call $~lib/rt/pure/__retain + local.set $4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $5 + local.get $4 + local.get $3 i32.const 12 i32.mul i32.add @@ -1580,7 +1583,7 @@ local.get $3 local.get $0 i32.load - local.get $4 + local.get $5 local.get $0 i32.load offset=4 i32.and @@ -1593,6 +1596,8 @@ local.get $1 local.get $3 i32.store + local.get $4 + call $~lib/rt/pure/__release end local.get $0 call $~lib/rt/pure/__retain @@ -2615,14 +2620,17 @@ end local.get $0 i32.load offset=8 + call $~lib/rt/pure/__retain + local.set $5 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $1 i32.const 1 i32.add i32.store offset=16 local.get $5 + local.get $1 i32.const 3 i32.shl i32.add @@ -2654,6 +2662,8 @@ local.get $2 local.get $1 i32.store + local.get $5 + call $~lib/rt/pure/__release end local.get $0 call $~lib/rt/pure/__retain @@ -2873,7 +2883,7 @@ local.get $1 local.get $1 call $~lib/util/hash/hash32 - local.tee $4 + local.tee $5 call $~lib/map/Map#find local.tee $3 if @@ -2912,14 +2922,17 @@ end local.get $0 i32.load offset=8 + call $~lib/rt/pure/__retain + local.set $4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $5 + local.get $4 + local.get $3 i32.const 12 i32.mul i32.add @@ -2938,7 +2951,7 @@ local.get $3 local.get $0 i32.load - local.get $4 + local.get $5 local.get $0 i32.load offset=4 i32.and @@ -2951,6 +2964,8 @@ local.get $1 local.get $3 i32.store + local.get $4 + call $~lib/rt/pure/__release end local.get $0 call $~lib/rt/pure/__retain @@ -3730,7 +3745,7 @@ i32.const 255 i32.and call $~lib/util/hash/hash8 - local.tee $4 + local.tee $5 call $~lib/map/Map#find local.tee $3 if @@ -3769,14 +3784,17 @@ end local.get $0 i32.load offset=8 + call $~lib/rt/pure/__retain + local.set $4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $5 + local.get $4 + local.get $3 i32.const 12 i32.mul i32.add @@ -3795,7 +3813,7 @@ local.get $3 local.get $0 i32.load - local.get $4 + local.get $5 local.get $0 i32.load offset=4 i32.and @@ -3808,6 +3826,8 @@ local.get $1 local.get $3 i32.store + local.get $4 + call $~lib/rt/pure/__release end local.get $0 call $~lib/rt/pure/__retain @@ -4169,14 +4189,17 @@ end local.get $0 i32.load offset=8 + call $~lib/rt/pure/__retain + local.set $5 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $1 i32.const 1 i32.add i32.store offset=16 local.get $5 + local.get $1 i32.const 3 i32.shl i32.add @@ -4208,6 +4231,8 @@ local.get $2 local.get $1 i32.store + local.get $5 + call $~lib/rt/pure/__release end local.get $0 call $~lib/rt/pure/__retain @@ -4992,7 +5017,7 @@ i32.const 16 i32.shr_s call $~lib/util/hash/hash16 - local.tee $4 + local.tee $5 call $~lib/map/Map#find local.tee $3 if @@ -5031,14 +5056,17 @@ end local.get $0 i32.load offset=8 + call $~lib/rt/pure/__retain + local.set $4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $5 + local.get $4 + local.get $3 i32.const 12 i32.mul i32.add @@ -5057,7 +5085,7 @@ local.get $3 local.get $0 i32.load - local.get $4 + local.get $5 local.get $0 i32.load offset=4 i32.and @@ -5070,6 +5098,8 @@ local.get $1 local.get $3 i32.store + local.get $4 + call $~lib/rt/pure/__release end local.get $0 call $~lib/rt/pure/__retain @@ -5489,14 +5519,17 @@ end local.get $0 i32.load offset=8 + call $~lib/rt/pure/__retain + local.set $5 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $1 i32.const 1 i32.add i32.store offset=16 local.get $5 + local.get $1 i32.const 3 i32.shl i32.add @@ -5528,6 +5561,8 @@ local.get $2 local.get $1 i32.store + local.get $5 + call $~lib/rt/pure/__release end local.get $0 call $~lib/rt/pure/__retain @@ -6277,7 +6312,7 @@ i32.const 65535 i32.and call $~lib/util/hash/hash16 - local.tee $4 + local.tee $5 call $~lib/map/Map#find local.tee $3 if @@ -6316,14 +6351,17 @@ end local.get $0 i32.load offset=8 + call $~lib/rt/pure/__retain + local.set $4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $5 + local.get $4 + local.get $3 i32.const 12 i32.mul i32.add @@ -6342,7 +6380,7 @@ local.get $3 local.get $0 i32.load - local.get $4 + local.get $5 local.get $0 i32.load offset=4 i32.and @@ -6355,6 +6393,8 @@ local.get $1 local.get $3 i32.store + local.get $4 + call $~lib/rt/pure/__release end local.get $0 call $~lib/rt/pure/__retain @@ -6720,14 +6760,17 @@ end local.get $0 i32.load offset=8 + call $~lib/rt/pure/__retain + local.set $5 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $1 i32.const 1 i32.add i32.store offset=16 local.get $5 + local.get $1 i32.const 3 i32.shl i32.add @@ -6759,6 +6802,8 @@ local.get $2 local.get $1 i32.store + local.get $5 + call $~lib/rt/pure/__release end local.get $0 call $~lib/rt/pure/__retain @@ -8718,7 +8763,7 @@ local.get $1 local.get $1 call $~lib/util/hash/hash64 - local.tee $4 + local.tee $5 call $~lib/map/Map#find local.tee $3 if @@ -8757,14 +8802,17 @@ end local.get $0 i32.load offset=8 + call $~lib/rt/pure/__retain + local.set $4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $5 + local.get $4 + local.get $3 i32.const 4 i32.shl i32.add @@ -8783,7 +8831,7 @@ local.get $3 local.get $0 i32.load - local.get $4 + local.get $5 local.get $0 i32.load offset=4 i32.and @@ -8796,6 +8844,8 @@ local.get $2 local.get $3 i32.store + local.get $4 + call $~lib/rt/pure/__release end local.get $0 call $~lib/rt/pure/__retain @@ -9277,14 +9327,17 @@ end local.get $0 i32.load offset=8 + call $~lib/rt/pure/__retain + local.set $5 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $3 i32.const 1 i32.add i32.store offset=16 local.get $5 + local.get $3 i32.const 24 i32.mul i32.add @@ -9316,6 +9369,8 @@ local.get $4 local.get $3 i32.store + local.get $5 + call $~lib/rt/pure/__release end local.get $0 call $~lib/rt/pure/__retain @@ -10672,7 +10727,7 @@ local.get $1 i32.reinterpret_f32 call $~lib/util/hash/hash32 - local.tee $4 + local.tee $5 call $~lib/map/Map#find local.tee $3 if @@ -10711,14 +10766,17 @@ end local.get $0 i32.load offset=8 + call $~lib/rt/pure/__retain + local.set $4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $5 + local.get $4 + local.get $3 i32.const 12 i32.mul i32.add @@ -10737,7 +10795,7 @@ local.get $3 local.get $0 i32.load - local.get $4 + local.get $5 local.get $0 i32.load offset=4 i32.and @@ -10750,6 +10808,8 @@ local.get $2 local.get $3 i32.store + local.get $4 + call $~lib/rt/pure/__release end local.get $0 call $~lib/rt/pure/__retain @@ -11070,7 +11130,7 @@ local.get $1 i32.reinterpret_f32 call $~lib/util/hash/hash32 - local.tee $5 + local.tee $4 call $~lib/map/Map#find local.tee $3 if @@ -11109,14 +11169,17 @@ end local.get $0 i32.load offset=8 + call $~lib/rt/pure/__retain + local.set $5 local.get $0 local.get $0 i32.load offset=16 - local.tee $4 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $4 + local.get $5 + local.get $3 i32.const 12 i32.mul i32.add @@ -11135,7 +11198,7 @@ local.get $3 local.get $0 i32.load - local.get $5 + local.get $4 local.get $0 i32.load offset=4 i32.and @@ -11148,6 +11211,8 @@ local.get $4 local.get $3 i32.store + local.get $5 + call $~lib/rt/pure/__release end local.get $0 call $~lib/rt/pure/__retain @@ -11898,7 +11963,7 @@ local.get $1 i64.reinterpret_f64 call $~lib/util/hash/hash64 - local.tee $4 + local.tee $5 call $~lib/map/Map#find local.tee $3 if @@ -11937,14 +12002,17 @@ end local.get $0 i32.load offset=8 + call $~lib/rt/pure/__retain + local.set $4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $5 + local.get $4 + local.get $3 i32.const 4 i32.shl i32.add @@ -11963,7 +12031,7 @@ local.get $3 local.get $0 i32.load - local.get $4 + local.get $5 local.get $0 i32.load offset=4 i32.and @@ -11976,6 +12044,8 @@ local.get $2 local.get $3 i32.store + local.get $4 + call $~lib/rt/pure/__release end local.get $0 call $~lib/rt/pure/__retain @@ -12371,14 +12441,17 @@ end local.get $0 i32.load offset=8 + call $~lib/rt/pure/__retain + local.set $5 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $3 i32.const 1 i32.add i32.store offset=16 local.get $5 + local.get $3 i32.const 24 i32.mul i32.add @@ -12410,6 +12483,8 @@ local.get $4 local.get $3 i32.store + local.get $5 + call $~lib/rt/pure/__release end local.get $0 call $~lib/rt/pure/__retain diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index 99baab6dd0..368ba6a483 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -2192,10 +2192,18 @@ (func $~lib/util/string/compareImpl (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 + call $~lib/rt/pure/__retain + local.tee $4 + local.tee $3 i32.const 7 i32.and local.get $1 + call $~lib/rt/pure/__retain + local.tee $5 + local.tee $1 i32.const 7 i32.and i32.or @@ -2207,16 +2215,16 @@ select if loop $do-continue|0 - local.get $0 + local.get $3 i64.load local.get $1 i64.load i64.eq if - local.get $0 + local.get $3 i32.const 8 i32.add - local.set $0 + local.set $3 local.get $1 i32.const 8 i32.add @@ -2233,29 +2241,33 @@ end loop $while-continue|1 local.get $2 - local.tee $3 + local.tee $0 i32.const 1 i32.sub local.set $2 - local.get $3 + local.get $0 if - local.get $0 + local.get $3 i32.load16_u - local.tee $3 + local.tee $0 local.get $1 i32.load16_u - local.tee $4 + local.tee $6 i32.ne if - local.get $3 local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + local.get $6 i32.sub return end - local.get $0 + local.get $3 i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 i32.const 2 i32.add @@ -2263,14 +2275,26 @@ br $while-continue|1 end end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release i32.const 0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 local.get $1 + call $~lib/rt/pure/__retain + local.tee $1 i32.eq if + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 1 return end @@ -2293,8 +2317,16 @@ local.get $2 call $~lib/util/string/compareImpl i32.eqz + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release return end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 0 ) (func $~lib/util/string/stagedBinaryLookup (param $0 i32) (param $1 i32) (result i32) @@ -3083,14 +3115,20 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) block $__inlined_func$~lib/string/String#concat (result i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $2 i32.const 18624 - local.get $0 + local.get $2 select - local.set $2 + local.set $3 local.get $1 call $~lib/rt/pure/__retain + local.tee $5 + call $~lib/rt/pure/__retain local.tee $0 i32.eqz if @@ -3104,16 +3142,16 @@ i32.const 18624 local.set $0 end - local.get $2 + local.get $3 call $~lib/string/String#get:length i32.const 1 i32.shl - local.tee $3 + local.tee $4 local.get $0 call $~lib/string/String#get:length i32.const 1 i32.shl - local.tee $4 + local.tee $6 i32.add local.tee $1 i32.eqz @@ -3127,19 +3165,23 @@ call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 - local.get $2 local.get $3 + local.get $4 call $~lib/memory/memory.copy local.get $1 - local.get $3 + local.get $4 i32.add local.get $0 - local.get $4 + local.get $6 call $~lib/memory/memory.copy local.get $0 call $~lib/rt/pure/__release local.get $1 end + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release ) (func $start:std/string-casemapping (local $0 i64) diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index 025fc99efd..4198583166 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -97,6 +97,17 @@ call $~lib/rt/pure/decrement end ) + (func $~lib/string/String.UTF16.byteLength (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 16 + i32.sub + i32.load offset=12 + local.get $0 + call $~lib/rt/pure/__release + ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1299,9 +1310,9 @@ (func $~lib/string/String.UTF16.encode (param $0 i32) (result i32) (local $1 i32) local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 + call $~lib/rt/pure/__retain + local.tee $0 + call $~lib/string/String.UTF16.byteLength i32.const 0 call $~lib/rt/tlsf/__alloc local.tee $1 @@ -1313,6 +1324,8 @@ call $~lib/memory/memory.copy local.get $1 call $~lib/rt/pure/__retain + local.get $0 + call $~lib/rt/pure/__release ) (func $std/string-encoding/testUTF16Encode (local $0 i32) @@ -1493,20 +1506,35 @@ call $~lib/rt/pure/__retain ) (func $~lib/string/String.UTF16.decode (param $0 i32) (result i32) + (local $1 i32) local.get $0 - local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.const 16 i32.sub i32.load offset=12 + local.set $1 + local.get $0 + local.get $1 call $~lib/string/String.UTF16.decodeUnsafe + local.get $0 + call $~lib/rt/pure/__release ) (func $~lib/util/string/compareImpl (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 + call $~lib/rt/pure/__retain + local.tee $4 + local.tee $3 i32.const 7 i32.and local.get $1 + call $~lib/rt/pure/__retain + local.tee $5 + local.tee $1 i32.const 7 i32.and i32.or @@ -1518,16 +1546,16 @@ select if loop $do-continue|0 - local.get $0 + local.get $3 i64.load local.get $1 i64.load i64.eq if - local.get $0 + local.get $3 i32.const 8 i32.add - local.set $0 + local.set $3 local.get $1 i32.const 8 i32.add @@ -1544,29 +1572,33 @@ end loop $while-continue|1 local.get $2 - local.tee $3 + local.tee $0 i32.const 1 i32.sub local.set $2 - local.get $3 + local.get $0 if - local.get $0 + local.get $3 i32.load16_u - local.tee $3 + local.tee $0 local.get $1 i32.load16_u - local.tee $4 + local.tee $6 i32.ne if - local.get $3 local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + local.get $6 i32.sub return end - local.get $0 + local.get $3 i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 i32.const 2 i32.add @@ -1574,14 +1606,26 @@ br $while-continue|1 end end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release i32.const 0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 local.get $1 + call $~lib/rt/pure/__retain + local.tee $1 i32.eq if + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 1 return end @@ -1604,8 +1648,16 @@ local.get $2 call $~lib/util/string/compareImpl i32.eqz + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release return end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 0 ) (func $std/string-encoding/testUTF16DecodeUnsafe @@ -1620,13 +1672,14 @@ i32.const 1040 call $~lib/string/String.UTF16.encode local.set $0 - i32.const 1036 - i32.load - local.set $1 + i32.const 1040 + call $~lib/string/String.UTF16.byteLength + local.set $7 local.get $0 + local.tee $1 i32.const 0 call $~lib/string/String.UTF16.decodeUnsafe - local.tee $2 + local.tee $6 i32.const 1296 call $~lib/string/String.__eq i32.eqz @@ -1638,10 +1691,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $7 call $~lib/string/String.UTF16.decodeUnsafe - local.tee $3 + local.tee $5 i32.const 1040 call $~lib/string/String.__eq i32.eqz @@ -1653,7 +1706,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 4 call $~lib/string/String.UTF16.decodeUnsafe local.tee $4 @@ -1668,12 +1721,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 4 i32.add i32.const 2 call $~lib/string/String.UTF16.decodeUnsafe - local.tee $5 + local.tee $3 i32.const 1344 call $~lib/string/String.__eq i32.eqz @@ -1685,12 +1738,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 4 i32.add i32.const 4 call $~lib/string/String.UTF16.decodeUnsafe - local.tee $6 + local.tee $2 i32.const 1376 call $~lib/string/String.__eq i32.eqz @@ -1702,7 +1755,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 8 i32.add i32.const 4 @@ -1719,7 +1772,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 12 i32.add i32.const 0 @@ -1736,15 +1789,15 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $6 call $~lib/rt/pure/__release - local.get $3 + local.get $5 call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $5 + local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $2 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release @@ -1757,7 +1810,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $5 + local.tee $0 local.get $0 i32.const 16 i32.sub @@ -1842,6 +1899,8 @@ end end end + local.get $5 + call $~lib/rt/pure/__release local.get $2 ) (func $~lib/string/String.UTF8.encodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) @@ -2021,6 +2080,8 @@ (func $~lib/string/String.UTF8.encode (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 local.get $1 call $~lib/string/String.UTF8.byteLength i32.const 0 @@ -2034,6 +2095,8 @@ call $~lib/string/String.UTF8.encodeUnsafe local.get $2 call $~lib/rt/pure/__retain + local.get $0 + call $~lib/rt/pure/__release ) (func $std/string-encoding/testUTF8Encode (local $0 i32) @@ -2681,13 +2744,20 @@ call $~lib/rt/pure/__retain ) (func $~lib/string/String.UTF8.decode (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $0 - local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.const 16 i32.sub i32.load offset=12 + local.set $2 + local.get $0 + local.get $2 local.get $1 call $~lib/string/String.UTF8.decodeUnsafe + local.get $0 + call $~lib/rt/pure/__release ) (func $std/string-encoding/testUTF8DecodeNullTerminated (local $0 i32) @@ -3006,6 +3076,8 @@ (local $3 i32) (local $4 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.const 0 call $~lib/string/String.UTF8.encode local.tee $1 @@ -3043,6 +3115,8 @@ call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release local.get $3 @@ -3051,8 +3125,8 @@ (func $start:std/string-encoding (local $0 i32) (local $1 i32) - i32.const 1036 - i32.load + i32.const 1040 + call $~lib/string/String.UTF16.byteLength i32.const 12 i32.ne if diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 80f6dc7d09..950fca09ad 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -5,19 +5,19 @@ (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $none_=>_i32 (func (result i32))) + (type $i32_=>_f64 (func (param i32) (result f64))) (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) (type $none_=>_none (func)) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) - (type $i32_=>_f64 (func (param i32) (result f64))) + (type $none_=>_i32 (func (result i32))) (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $i64_=>_i32 (func (param i64) (result i32))) (type $f64_=>_i32 (func (param f64) (result i32))) - (type $none_=>_i64 (func (result i64))) + (type $i32_=>_i64 (func (param i32) (result i64))) (type $f64_i32_=>_f64 (func (param f64 i32) (result f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) @@ -524,7 +524,11 @@ ) (func $~lib/util/string/compareImpl (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 + call $~lib/rt/pure/__retain + local.tee $4 local.get $1 i32.const 1 i32.shl @@ -533,6 +537,9 @@ i32.const 7 i32.and local.get $2 + call $~lib/rt/pure/__retain + local.tee $5 + local.tee $2 i32.const 7 i32.and i32.or @@ -581,11 +588,15 @@ local.tee $0 local.get $2 i32.load16_u - local.tee $4 + local.tee $6 i32.ne if - local.get $0 local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + local.get $6 i32.sub return end @@ -600,14 +611,26 @@ br $while-continue|1 end end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release i32.const 0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 local.get $1 + call $~lib/rt/pure/__retain + local.tee $1 i32.eq if + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 1 return end @@ -631,12 +654,23 @@ local.get $2 call $~lib/util/string/compareImpl i32.eqz + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release return end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 0 ) (func $~lib/string/String.__not (param $0 i32) (result i32) + (local $1 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 if (result i32) local.get $0 call $~lib/string/String#get:length @@ -644,6 +678,8 @@ else i32.const 1 end + local.get $0 + call $~lib/rt/pure/__release ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) @@ -1760,10 +1796,14 @@ (local $3 i32) (local $4 i32) local.get $1 + call $~lib/rt/pure/__retain + local.tee $1 call $~lib/string/String#get:length local.tee $4 i32.eqz if + local.get $1 + call $~lib/rt/pure/__release i32.const 0 return end @@ -1772,6 +1812,8 @@ local.tee $3 i32.eqz if + local.get $1 + call $~lib/rt/pure/__release i32.const -1 return end @@ -1804,6 +1846,8 @@ call $~lib/util/string/compareImpl i32.eqz if + local.get $1 + call $~lib/rt/pure/__release local.get $2 return end @@ -1814,6 +1858,8 @@ br $for-loop|0 end end + local.get $1 + call $~lib/rt/pure/__release i32.const -1 ) (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) @@ -2019,6 +2065,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 local.get $0 call $~lib/string/String#get:length i32.const 1 @@ -2044,6 +2093,8 @@ if local.get $0 call $~lib/rt/pure/__retain + local.get $2 + call $~lib/rt/pure/__release return end local.get $4 @@ -2092,11 +2143,16 @@ call $~lib/memory/memory.copy local.get $1 call $~lib/rt/pure/__retain + local.get $2 + call $~lib/rt/pure/__release ) (func $~lib/string/String#padEnd (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 local.get $0 call $~lib/string/String#get:length i32.const 1 @@ -2122,6 +2178,8 @@ if local.get $0 call $~lib/rt/pure/__retain + local.get $2 + call $~lib/rt/pure/__release return end local.get $5 @@ -2172,17 +2230,23 @@ end local.get $1 call $~lib/rt/pure/__retain + local.get $2 + call $~lib/rt/pure/__release ) (func $~lib/string/String#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $1 + call $~lib/rt/pure/__retain + local.tee $1 call $~lib/string/String#get:length local.tee $4 i32.eqz if local.get $0 call $~lib/string/String#get:length + local.get $1 + call $~lib/rt/pure/__release return end local.get $0 @@ -2190,6 +2254,8 @@ local.tee $3 i32.eqz if + local.get $1 + call $~lib/rt/pure/__release i32.const -1 return end @@ -2221,6 +2287,8 @@ call $~lib/util/string/compareImpl i32.eqz if + local.get $1 + call $~lib/rt/pure/__release local.get $2 return end @@ -2231,6 +2299,8 @@ br $for-loop|0 end end + local.get $1 + call $~lib/rt/pure/__release i32.const -1 ) (func $~lib/string/String#localeCompare (param $0 i32) (param $1 i32) (result i32) @@ -2238,8 +2308,12 @@ (local $3 i32) local.get $0 local.get $1 + call $~lib/rt/pure/__retain + local.tee $1 i32.eq if + local.get $1 + call $~lib/rt/pure/__release i32.const 0 return end @@ -2251,6 +2325,8 @@ local.tee $2 i32.ne if + local.get $1 + call $~lib/rt/pure/__release i32.const 1 i32.const -1 local.get $3 @@ -2262,6 +2338,8 @@ local.get $2 i32.eqz if + local.get $1 + call $~lib/rt/pure/__release i32.const 0 return end @@ -2270,6 +2348,8 @@ local.get $1 local.get $2 call $~lib/util/string/compareImpl + local.get $1 + call $~lib/rt/pure/__release ) (func $~lib/util/string/isSpace (param $0 i32) (result i32) local.get $0 @@ -2537,79 +2617,83 @@ (func $~lib/util/string/strtol (param $0 i32) (result f64) (local $1 i32) (local $2 i32) - (local $3 f64) - (local $4 i32) - (local $5 f64) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 f64) block $folding-inner0 local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 call $~lib/string/String#get:length - local.tee $1 + local.tee $0 i32.eqz br_if $folding-inner0 - local.get $0 + local.get $3 + local.tee $2 i32.load16_u - local.set $2 + local.set $1 f64.const 1 - local.set $5 + local.set $4 loop $while-continue|0 - local.get $2 + local.get $1 call $~lib/util/string/isSpace if - local.get $0 + local.get $2 i32.const 2 i32.add - local.tee $0 + local.tee $2 i32.load16_u - local.set $2 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|0 end end - local.get $2 + local.get $1 i32.const 45 i32.eq if - local.get $1 + local.get $0 i32.const 1 i32.sub - local.tee $1 + local.tee $0 i32.eqz br_if $folding-inner0 f64.const -1 - local.set $5 - local.get $0 + local.set $4 + local.get $2 i32.const 2 i32.add - local.tee $0 + local.tee $2 i32.load16_u - local.set $2 + local.set $1 else - local.get $2 + local.get $1 i32.const 43 i32.eq if - local.get $1 + local.get $0 i32.const 1 i32.sub - local.tee $1 + local.tee $0 i32.eqz br_if $folding-inner0 - local.get $0 + local.get $2 i32.const 2 i32.add - local.tee $0 + local.tee $2 i32.load16_u - local.set $2 + local.set $1 end end - local.get $1 + local.get $0 i32.const 2 i32.gt_s i32.const 0 - local.get $2 + local.get $1 i32.const 48 i32.eq select @@ -2618,54 +2702,54 @@ block $case3|1 block $case2|1 block $case1|1 - local.get $0 + local.get $2 i32.load16_u offset=2 i32.const 32 i32.or - local.tee $2 + local.tee $1 i32.const 98 i32.ne if - local.get $2 + local.get $1 i32.const 111 i32.eq br_if $case1|1 - local.get $2 + local.get $1 i32.const 120 i32.eq br_if $case2|1 br $case3|1 end - local.get $0 + local.get $2 i32.const 4 i32.add - local.set $0 - local.get $1 + local.set $2 + local.get $0 i32.const 2 i32.sub - local.set $1 + local.set $0 i32.const 2 br $break|1 end - local.get $0 + local.get $2 i32.const 4 i32.add - local.set $0 - local.get $1 + local.set $2 + local.get $0 i32.const 2 i32.sub - local.set $1 + local.set $0 i32.const 8 br $break|1 end - local.get $0 + local.get $2 i32.const 4 i32.add - local.set $0 - local.get $1 + local.set $2 + local.get $0 i32.const 2 i32.sub - local.set $1 + local.set $0 i32.const 16 br $break|1 end @@ -2674,92 +2758,106 @@ else i32.const 10 end - local.set $4 + local.set $5 loop $while-continue|2 block $while-break|2 - local.get $1 - local.tee $2 + local.get $0 + local.tee $1 i32.const 1 i32.sub - local.set $1 - local.get $2 + local.set $0 + local.get $1 if - local.get $0 + local.get $2 i32.load16_u - local.tee $2 + local.tee $1 i32.const 48 i32.sub i32.const 10 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 48 i32.sub else - local.get $2 + local.get $1 i32.const 65 i32.sub i32.const 25 i32.le_u if (result i32) - local.get $2 + local.get $1 i32.const 55 i32.sub else - local.get $2 + local.get $1 i32.const 97 i32.sub i32.const 25 i32.gt_u br_if $while-break|2 - local.get $2 + local.get $1 i32.const 87 i32.sub end end - local.tee $2 - local.get $4 + local.tee $1 + local.get $5 i32.ge_u br_if $while-break|2 - local.get $3 - local.get $4 + local.get $6 + local.get $5 f64.convert_i32_s f64.mul - local.get $2 + local.get $1 f64.convert_i32_u f64.add - local.set $3 - local.get $0 + local.set $6 + local.get $2 i32.const 2 i32.add - local.set $0 + local.set $2 br $while-continue|2 end end end - local.get $5 local.get $3 + call $~lib/rt/pure/__release + local.get $4 + local.get $6 f64.mul return end + local.get $3 + call $~lib/rt/pure/__release f64.const nan:0x8000000000000 ) - (func $~lib/util/string/strtol (result i32) - (local $0 i32) + (func $~lib/string/parseInt (param $0 i32) (result f64) + (local $1 f64) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + call $~lib/util/string/strtol + local.get $0 + call $~lib/rt/pure/__release + ) + (func $~lib/util/string/strtol (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - i32.const 2912 - local.set $5 + (local $6 i32) block $folding-inner0 - i32.const 2912 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 call $~lib/string/String#get:length local.tee $0 i32.eqz br_if $folding-inner0 - i32.const 2912 + local.get $3 + local.tee $2 i32.load16_u local.set $1 i32.const 1 @@ -2768,10 +2866,10 @@ local.get $1 call $~lib/util/string/isSpace if - local.get $5 + local.get $2 i32.const 2 i32.add - local.tee $5 + local.tee $2 i32.load16_u local.set $1 local.get $0 @@ -2793,10 +2891,10 @@ br_if $folding-inner0 i32.const -1 local.set $4 - local.get $5 + local.get $2 i32.const 2 i32.add - local.tee $5 + local.tee $2 i32.load16_u local.set $1 else @@ -2810,10 +2908,10 @@ local.tee $0 i32.eqz br_if $folding-inner0 - local.get $5 + local.get $2 i32.const 2 i32.add - local.tee $5 + local.tee $2 i32.load16_u local.set $1 end @@ -2831,7 +2929,7 @@ block $case3|1 block $case2|1 block $case1|1 - local.get $5 + local.get $2 i32.load16_u offset=2 i32.const 32 i32.or @@ -2849,10 +2947,10 @@ br_if $case2|1 br $case3|1 end - local.get $5 + local.get $2 i32.const 4 i32.add - local.set $5 + local.set $2 local.get $0 i32.const 2 i32.sub @@ -2860,10 +2958,10 @@ i32.const 2 br $break|1 end - local.get $5 + local.get $2 i32.const 4 i32.add - local.set $5 + local.set $2 local.get $0 i32.const 2 i32.sub @@ -2871,10 +2969,10 @@ i32.const 8 br $break|1 end - local.get $5 + local.get $2 i32.const 4 i32.add - local.set $5 + local.set $2 local.get $0 i32.const 2 i32.sub @@ -2887,7 +2985,7 @@ else i32.const 10 end - local.set $3 + local.set $5 loop $while-continue|2 block $while-break|2 local.get $0 @@ -2897,7 +2995,7 @@ local.set $0 local.get $1 if - local.get $5 + local.get $2 i32.load16_u local.tee $1 i32.const 48 @@ -2931,46 +3029,51 @@ end end local.tee $1 - local.get $3 + local.get $5 i32.ge_u br_if $while-break|2 local.get $1 - local.get $2 - local.get $3 + local.get $5 + local.get $6 i32.mul i32.add - local.set $2 - local.get $5 + local.set $6 + local.get $2 i32.const 2 i32.add - local.set $5 + local.set $2 br $while-continue|2 end end end - local.get $2 + local.get $3 + call $~lib/rt/pure/__release local.get $4 + local.get $6 i32.mul return end + local.get $3 + call $~lib/rt/pure/__release i32.const 0 ) - (func $~lib/util/string/strtol (result i64) - (local $0 i32) + (func $~lib/util/string/strtol (param $0 i32) (result i64) (local $1 i32) - (local $2 i64) + (local $2 i32) (local $3 i32) (local $4 i64) (local $5 i32) - i32.const 2960 - local.set $5 + (local $6 i64) block $folding-inner0 - i32.const 2960 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 call $~lib/string/String#get:length local.tee $0 i32.eqz br_if $folding-inner0 - i32.const 2960 + local.get $3 + local.tee $2 i32.load16_u local.set $1 i64.const 1 @@ -2979,10 +3082,10 @@ local.get $1 call $~lib/util/string/isSpace if - local.get $5 + local.get $2 i32.const 2 i32.add - local.tee $5 + local.tee $2 i32.load16_u local.set $1 local.get $0 @@ -3004,10 +3107,10 @@ br_if $folding-inner0 i64.const -1 local.set $4 - local.get $5 + local.get $2 i32.const 2 i32.add - local.tee $5 + local.tee $2 i32.load16_u local.set $1 else @@ -3021,10 +3124,10 @@ local.tee $0 i32.eqz br_if $folding-inner0 - local.get $5 + local.get $2 i32.const 2 i32.add - local.tee $5 + local.tee $2 i32.load16_u local.set $1 end @@ -3042,7 +3145,7 @@ block $case3|1 block $case2|1 block $case1|1 - local.get $5 + local.get $2 i32.load16_u offset=2 i32.const 32 i32.or @@ -3060,10 +3163,10 @@ br_if $case2|1 br $case3|1 end - local.get $5 + local.get $2 i32.const 4 i32.add - local.set $5 + local.set $2 local.get $0 i32.const 2 i32.sub @@ -3071,10 +3174,10 @@ i32.const 2 br $break|1 end - local.get $5 + local.get $2 i32.const 4 i32.add - local.set $5 + local.set $2 local.get $0 i32.const 2 i32.sub @@ -3082,10 +3185,10 @@ i32.const 8 br $break|1 end - local.get $5 + local.get $2 i32.const 4 i32.add - local.set $5 + local.set $2 local.get $0 i32.const 2 i32.sub @@ -3098,7 +3201,7 @@ else i32.const 10 end - local.set $3 + local.set $5 loop $while-continue|2 block $while-break|2 local.get $0 @@ -3108,7 +3211,7 @@ local.set $0 local.get $1 if - local.get $5 + local.get $2 i32.load16_u local.tee $1 i32.const 48 @@ -3142,30 +3245,34 @@ end end local.tee $1 - local.get $3 + local.get $5 i32.ge_u br_if $while-break|2 local.get $1 i64.extend_i32_u - local.get $2 - local.get $3 + local.get $6 + local.get $5 i64.extend_i32_s i64.mul i64.add - local.set $2 - local.get $5 + local.set $6 + local.get $2 i32.const 2 i32.add - local.set $5 + local.set $2 br $while-continue|2 end end end - local.get $2 + local.get $3 + call $~lib/rt/pure/__release local.get $4 + local.get $6 i64.mul return end + local.get $3 + call $~lib/rt/pure/__release i64.const 0 ) (func $~lib/math/ipow32 (param $0 i32) (result i32) @@ -3285,32 +3392,36 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) - (local $7 i32) + (local $6 i32) + (local $7 i64) (local $8 i32) - (local $9 i64) + (local $9 i32) (local $10 i64) - (local $11 f64) - (local $12 i64) - (local $13 f64) - (local $14 i32) + (local $11 i64) + (local $12 f64) + (local $13 i64) + (local $14 f64) (local $15 i32) - (local $16 i64) + (local $16 i32) + (local $17 i64) block $folding-inner0 local.get $0 - call $~lib/string/String#get:length + call $~lib/rt/pure/__retain local.tee $5 + call $~lib/string/String#get:length + local.tee $6 i32.eqz br_if $folding-inner0 - local.get $0 + local.get $5 + local.tee $0 i32.load16_u - local.set $7 + local.set $8 f64.const 1 - local.set $13 + local.set $14 loop $while-continue|0 - local.get $5 + local.get $6 if (result i32) - local.get $7 + local.get $8 call $~lib/util/string/isSpace else i32.const 0 @@ -3321,43 +3432,43 @@ i32.add local.tee $0 i32.load16_u - local.set $7 - local.get $5 + local.set $8 + local.get $6 i32.const 1 i32.sub - local.set $5 + local.set $6 br $while-continue|0 end end - local.get $5 + local.get $6 i32.eqz br_if $folding-inner0 - local.get $7 + local.get $8 i32.const 45 i32.eq if (result i32) - local.get $5 + local.get $6 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.eqz br_if $folding-inner0 f64.const -1 - local.set $13 + local.set $14 local.get $0 i32.const 2 i32.add local.tee $0 i32.load16_u else - local.get $7 + local.get $8 i32.const 43 i32.eq if (result i32) - local.get $5 + local.get $6 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.eqz br_if $folding-inner0 local.get $0 @@ -3366,14 +3477,14 @@ local.tee $0 i32.load16_u else - local.get $7 + local.get $8 end end - local.tee $7 + local.tee $8 i32.const 73 i32.eq i32.const 0 - local.get $5 + local.get $6 i32.const 8 i32.ge_s select @@ -3391,20 +3502,22 @@ i32.const 0 end if + local.get $5 + call $~lib/rt/pure/__release f64.const inf - local.get $13 + local.get $14 f64.copysign return end br $folding-inner0 end - local.get $7 + local.get $8 i32.const 48 i32.sub i32.const 10 i32.ge_u i32.const 0 - local.get $7 + local.get $8 i32.const 46 i32.ne select @@ -3412,7 +3525,7 @@ local.get $0 local.set $4 loop $while-continue|1 - local.get $7 + local.get $8 i32.const 48 i32.eq if @@ -3421,22 +3534,24 @@ i32.add local.tee $0 i32.load16_u - local.set $7 - local.get $5 + local.set $8 + local.get $6 i32.const 1 i32.sub - local.set $5 + local.set $6 br $while-continue|1 end end - local.get $5 + local.get $6 i32.const 0 i32.le_s if + local.get $5 + call $~lib/rt/pure/__release f64.const 0 return end - local.get $7 + local.get $8 i32.const 46 i32.eq if @@ -3449,10 +3564,10 @@ i32.const 2 i32.add local.set $0 - local.get $5 + local.get $6 i32.const 1 i32.sub - local.tee $5 + local.tee $6 if (result i32) i32.const 0 else @@ -3460,18 +3575,18 @@ end br_if $folding-inner0 i32.const 1 - local.set $14 + local.set $15 loop $for-loop|2 local.get $0 i32.load16_u - local.tee $7 + local.tee $8 i32.const 48 i32.eq if - local.get $5 + local.get $6 i32.const 1 i32.sub - local.set $5 + local.set $6 local.get $2 i32.const 1 i32.sub @@ -3483,14 +3598,16 @@ br $for-loop|2 end end - local.get $5 + local.get $6 i32.const 0 i32.le_s if + local.get $5 + call $~lib/rt/pure/__release f64.const 0 return end - local.get $7 + local.get $8 i32.const 48 i32.sub i32.const 10 @@ -3503,37 +3620,37 @@ select br_if $folding-inner0 end - local.get $7 + local.get $8 i32.const 48 i32.sub - local.set $8 + local.set $9 loop $for-loop|3 i32.const 1 - local.get $14 + local.get $15 i32.eqz i32.const 0 - local.get $7 + local.get $8 i32.const 46 i32.eq select - local.get $8 + local.get $9 i32.const 10 i32.lt_u select if block $for-break3 - local.get $8 + local.get $9 i32.const 10 i32.lt_u if - local.get $8 + local.get $9 i64.extend_i32_u - local.get $6 + local.get $7 i64.const 10 i64.mul i64.add - local.get $6 - local.get $8 + local.get $7 + local.get $9 i32.eqz i32.eqz i64.extend_i32_u @@ -3542,7 +3659,7 @@ i32.const 19 i32.lt_s select - local.set $6 + local.set $7 local.get $1 i32.const 1 i32.add @@ -3551,12 +3668,12 @@ local.get $1 local.set $2 i32.const 1 - local.set $14 + local.set $15 end - local.get $5 + local.get $6 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.eqz br_if $for-break3 local.get $0 @@ -3564,17 +3681,17 @@ i32.add local.tee $0 i32.load16_u - local.tee $7 + local.tee $8 i32.const 48 i32.sub - local.set $8 + local.set $9 br $for-loop|3 end end end local.get $2 local.get $1 - local.get $14 + local.get $15 select i32.const 19 local.get $1 @@ -3598,40 +3715,40 @@ local.get $2 i32.const 2 i32.add - local.tee $8 + local.tee $9 i32.load16_u local.tee $0 i32.const 45 i32.eq if (result i32) - local.get $5 + local.get $6 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.eqz br_if $~lib/util/string/parseExp|inlined.0 i32.const -1 local.set $1 - local.get $8 + local.get $9 i32.const 2 i32.add - local.tee $8 + local.tee $9 i32.load16_u else local.get $0 i32.const 43 i32.eq if (result i32) - local.get $5 + local.get $6 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.eqz br_if $~lib/util/string/parseExp|inlined.0 - local.get $8 + local.get $9 i32.const 2 i32.add - local.tee $8 + local.tee $9 i32.load16_u else local.get $0 @@ -3643,16 +3760,16 @@ i32.const 48 i32.eq if - local.get $5 + local.get $6 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.eqz br_if $~lib/util/string/parseExp|inlined.0 - local.get $8 + local.get $9 i32.const 2 i32.add - local.tee $8 + local.tee $9 i32.load16_u local.set $0 br $while-continue|4 @@ -3667,7 +3784,7 @@ i32.const 10 i32.lt_u i32.const 0 - local.get $5 + local.get $6 select if local.get $3 @@ -3677,7 +3794,7 @@ local.get $1 i32.const 3200 i32.mul - local.set $15 + local.set $16 br $~lib/util/string/parseExp|inlined.0 end local.get $0 @@ -3686,14 +3803,14 @@ i32.mul i32.add local.set $3 - local.get $5 + local.get $6 i32.const 1 i32.sub - local.set $5 - local.get $8 + local.set $6 + local.get $9 i32.const 2 i32.add - local.tee $8 + local.tee $9 i32.load16_u i32.const 48 i32.sub @@ -3704,17 +3821,17 @@ local.get $1 local.get $3 i32.mul - local.set $15 + local.set $16 end block $~lib/util/string/scientific|inlined.0 i32.const 1 local.get $4 - local.get $15 + local.get $16 i32.add local.tee $0 i32.const -342 i32.lt_s - local.get $6 + local.get $7 i64.eqz select br_if $~lib/util/string/scientific|inlined.0 @@ -3723,12 +3840,12 @@ i32.gt_s if f64.const inf - local.set $11 + local.set $12 br $~lib/util/string/scientific|inlined.0 end - local.get $6 + local.get $7 f64.convert_i64_u - local.set $11 + local.set $12 local.get $0 i32.eqz br_if $~lib/util/string/scientific|inlined.0 @@ -3741,7 +3858,7 @@ i32.gt_s select if - local.get $11 + local.get $12 local.get $0 i32.const 3 i32.shl @@ -3749,11 +3866,11 @@ i32.add f64.load f64.mul - local.set $11 + local.set $12 i32.const 22 local.set $0 end - local.get $6 + local.get $7 i64.const 9007199254740991 i64.le_u if (result i32) @@ -3775,7 +3892,7 @@ i32.const 0 i32.gt_s if - local.get $11 + local.get $12 local.get $0 i32.const 3 i32.shl @@ -3783,10 +3900,10 @@ i32.add f64.load f64.mul - local.set $11 + local.set $12 br $~lib/util/string/scientific|inlined.0 end - local.get $11 + local.get $12 i32.const 0 local.get $0 i32.sub @@ -3801,33 +3918,33 @@ i32.const 0 i32.lt_s if (result f64) - local.get $6 - local.get $6 + local.get $7 + local.get $7 i64.clz - local.tee $9 + local.tee $10 i64.shl - local.set $6 + local.set $7 local.get $0 local.tee $1 i64.extend_i32_s - local.get $9 + local.get $10 i64.sub - local.set $9 + local.set $10 loop $for-loop|6 local.get $1 i32.const -14 i32.le_s if f64.const 0.00004294967296 - local.get $6 + local.get $7 i64.const 6103515625 i64.rem_u - local.get $6 + local.get $7 i64.const 6103515625 i64.div_u - local.tee $12 + local.tee $13 i64.clz - local.tee $10 + local.tee $11 i64.const 18 i64.sub i64.shl @@ -3835,15 +3952,15 @@ f64.mul f64.nearest i64.trunc_f64_u - local.get $12 - local.get $10 + local.get $13 + local.get $11 i64.shl i64.add - local.set $6 - local.get $9 + local.set $7 local.get $10 + local.get $11 i64.sub - local.set $9 + local.set $10 local.get $1 i32.const 14 i32.add @@ -3851,49 +3968,49 @@ br $for-loop|6 end end - local.get $6 + local.get $7 i32.const 0 local.get $1 i32.sub call $~lib/math/ipow32 i64.extend_i32_s - local.tee $12 + local.tee $13 i64.div_u - local.tee $16 + local.tee $17 i64.clz - local.set $10 - local.get $6 - local.get $12 + local.set $11 + local.get $7 + local.get $13 i64.rem_u f64.convert_i64_u i64.reinterpret_f64 - local.get $10 + local.get $11 i64.const 52 i64.shl i64.add f64.reinterpret_i64 - local.get $12 + local.get $13 f64.convert_i64_u f64.div i64.trunc_f64_u - local.get $16 - local.get $10 + local.get $17 + local.get $11 i64.shl i64.add f64.convert_i64_u - local.get $9 local.get $10 + local.get $11 i64.sub i32.wrap_i64 call $~lib/math/NativeMath.scalbn else - local.get $6 - local.get $6 + local.get $7 + local.get $7 i64.ctz - local.tee $9 + local.tee $10 i64.shr_u - local.set $6 - local.get $9 + local.set $7 + local.get $10 local.get $0 local.tee $3 i64.extend_i32_s @@ -3905,21 +4022,21 @@ i32.ge_s if i64.const 32 - local.get $6 + local.get $7 i64.const 32 i64.shr_u i64.const 1220703125 i64.mul - local.get $6 + local.get $7 i64.const 4294967295 i64.and i64.const 1220703125 i64.mul - local.tee $6 + local.tee $7 i64.const 32 i64.shr_u i64.add - local.tee $9 + local.tee $10 i64.const 32 i64.shr_u i32.wrap_i64 @@ -3927,11 +4044,11 @@ local.tee $0 i64.extend_i32_u i64.sub - local.tee $10 + local.tee $11 global.get $~lib/util/string/__fixmulShift i64.add global.set $~lib/util/string/__fixmulShift - local.get $6 + local.get $7 local.get $0 i64.extend_i32_u i64.shl @@ -3939,18 +4056,18 @@ i64.shr_u i64.const 1 i64.and - local.get $9 + local.get $10 local.get $0 i64.extend_i32_u i64.shl - local.get $6 + local.get $7 i64.const 4294967295 i64.and - local.get $10 + local.get $11 i64.shr_u i64.or i64.add - local.set $6 + local.set $7 local.get $3 i32.const 13 i32.sub @@ -3962,23 +4079,23 @@ call $~lib/math/ipow32 local.tee $0 i64.extend_i32_u - local.get $6 + local.get $7 i64.const 4294967295 i64.and i64.mul - local.set $9 + local.set $10 i64.const 32 local.get $0 i64.extend_i32_u - local.get $6 + local.get $7 i64.const 32 i64.shr_u i64.mul - local.get $9 + local.get $10 i64.const 32 i64.shr_u i64.add - local.tee $6 + local.tee $7 i64.const 32 i64.shr_u i32.wrap_i64 @@ -3986,11 +4103,11 @@ local.tee $0 i64.extend_i32_u i64.sub - local.tee $10 + local.tee $11 global.get $~lib/util/string/__fixmulShift i64.add global.set $~lib/util/string/__fixmulShift - local.get $9 + local.get $10 local.get $0 i64.extend_i32_u i64.shl @@ -3998,14 +4115,14 @@ i64.shr_u i64.const 1 i64.and - local.get $6 + local.get $7 local.get $0 i64.extend_i32_u i64.shl - local.get $9 + local.get $10 i64.const 4294967295 i64.and - local.get $10 + local.get $11 i64.shr_u i64.or i64.add @@ -4015,27 +4132,46 @@ call $~lib/math/NativeMath.scalbn end end - local.set $11 + local.set $12 end - local.get $11 - local.get $13 + local.get $5 + call $~lib/rt/pure/__release + local.get $12 + local.get $14 f64.copysign return end + local.get $5 + call $~lib/rt/pure/__release f64.const nan:0x8000000000000 ) + (func $~lib/string/parseFloat (param $0 i32) (result f64) + (local $1 f64) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + call $~lib/util/string/strtod + local.get $0 + call $~lib/rt/pure/__release + ) (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) block $__inlined_func$~lib/string/String#concat (result i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $2 i32.const 1648 - local.get $0 + local.get $2 select - local.set $2 + local.set $3 local.get $1 call $~lib/rt/pure/__retain + local.tee $5 + call $~lib/rt/pure/__retain local.tee $0 i32.eqz if @@ -4049,16 +4185,16 @@ i32.const 1648 local.set $0 end - local.get $2 + local.get $3 call $~lib/string/String#get:length i32.const 1 i32.shl - local.tee $3 + local.tee $4 local.get $0 call $~lib/string/String#get:length i32.const 1 i32.shl - local.tee $4 + local.tee $6 i32.add local.tee $1 i32.eqz @@ -4073,35 +4209,62 @@ call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 - local.get $2 local.get $3 + local.get $4 call $~lib/memory/memory.copy local.get $1 - local.get $3 + local.get $4 i32.add local.get $0 - local.get $4 + local.get $6 call $~lib/memory/memory.copy local.get $0 call $~lib/rt/pure/__release local.get $1 end + local.get $2 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + ) + (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.tee $0 + local.get $1 + call $~lib/rt/pure/__retain + local.tee $1 + call $~lib/string/String.__eq + i32.eqz + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) (func $~lib/string/String.__gt (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) block $folding-inner0 - i32.const 1 - local.get $1 - i32.eqz - i32.const 1 - local.get $0 - i32.eqz local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 local.get $1 + call $~lib/rt/pure/__retain + local.tee $1 i32.eq - select - select + if (result i32) + i32.const 1 + else + local.get $0 + i32.eqz + end + if (result i32) + i32.const 1 + else + local.get $1 + i32.eqz + end br_if $folding-inner0 local.get $0 call $~lib/string/String#get:length @@ -4113,6 +4276,10 @@ local.tee $3 i32.eqz if + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 1 return end @@ -4128,25 +4295,41 @@ call $~lib/util/string/compareImpl i32.const 0 i32.gt_s + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release return end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 0 ) (func $~lib/string/String.__lt (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) block $folding-inner0 - i32.const 1 - local.get $1 - i32.eqz - i32.const 1 - local.get $0 - i32.eqz local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 local.get $1 + call $~lib/rt/pure/__retain + local.tee $1 i32.eq - select - select + if (result i32) + i32.const 1 + else + local.get $0 + i32.eqz + end + if (result i32) + i32.const 1 + else + local.get $1 + i32.eqz + end br_if $folding-inner0 local.get $1 call $~lib/string/String#get:length @@ -4158,6 +4341,10 @@ local.tee $3 i32.eqz if + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 1 return end @@ -4173,10 +4360,46 @@ call $~lib/util/string/compareImpl i32.const 0 i32.lt_s + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release return end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 0 ) + (func $~lib/string/String.__gte (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + local.get $1 + call $~lib/rt/pure/__retain + local.tee $1 + call $~lib/string/String.__lt + i32.eqz + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/string/String.__lte (param $0 i32) (result i32) + (local $1 i32) + i32.const 1280 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + call $~lib/string/String.__gt + i32.eqz + i32.const 1280 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + ) (func $~lib/string/String#repeat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -4242,96 +4465,117 @@ (local $5 i32) (local $6 i32) (local $7 i32) - local.get $0 - call $~lib/string/String#get:length - local.tee $3 - local.get $1 - call $~lib/string/String#get:length - local.tee $4 - i32.le_u - if - local.get $3 - local.get $4 - i32.lt_u - if (result i32) - local.get $0 - call $~lib/rt/pure/__retain - else - local.get $2 - local.get $0 - local.get $1 - local.get $0 - call $~lib/string/String.__eq - select - call $~lib/rt/pure/__retain - end - return - end - local.get $0 + (local $8 i32) local.get $1 - i32.const 0 - call $~lib/string/String#indexOf - local.tee $1 - i32.const -1 - i32.xor - if - local.get $2 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + block $folding-inner0 + local.get $0 call $~lib/string/String#get:length - local.tee $5 - local.get $3 - local.get $4 - i32.sub - local.tee $6 - i32.add local.tee $3 + local.get $1 + call $~lib/string/String#get:length + local.tee $5 + i32.le_u if local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - local.tee $7 - call $~lib/memory/memory.copy - local.get $3 - local.get $7 - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.get $1 local.get $5 - i32.add - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $1 - local.get $4 - i32.add - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $1 - i32.sub - i32.const 1 - i32.shl - call $~lib/memory/memory.copy + i32.lt_u + if (result i32) + local.get $0 + call $~lib/rt/pure/__retain + else + local.get $2 + local.get $0 + local.get $1 + local.get $0 + call $~lib/string/String.__eq + select + call $~lib/rt/pure/__retain + end + local.set $0 + br $folding-inner0 + end + local.get $0 + local.get $1 + i32.const 0 + call $~lib/string/String#indexOf + local.tee $4 + i32.const -1 + i32.xor + if + local.get $2 + call $~lib/string/String#get:length + local.tee $6 local.get $3 - call $~lib/rt/pure/__retain - return + local.get $5 + i32.sub + local.tee $7 + i32.add + local.tee $3 + if + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.tee $3 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + local.tee $8 + call $~lib/memory/memory.copy + local.get $3 + local.get $8 + i32.add + local.get $2 + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $4 + local.get $6 + i32.add + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $4 + local.get $5 + i32.add + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $4 + i32.sub + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + call $~lib/rt/pure/__retain + local.set $0 + br $folding-inner0 + end end + local.get $0 + call $~lib/rt/pure/__retain + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + return end + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release local.get $0 - call $~lib/rt/pure/__retain ) (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) (local $1 i32) @@ -4509,88 +4753,220 @@ (local $8 i32) (local $9 i32) (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $7 local.get $2 + call $~lib/rt/pure/__retain local.set $5 - local.get $0 - call $~lib/string/String#get:length - local.tee $3 - local.get $1 - local.tee $4 - call $~lib/string/String#get:length - local.tee $10 - i32.le_u - if - local.get $3 + block $folding-inner0 + local.get $0 + call $~lib/string/String#get:length + local.tee $3 + local.get $7 + call $~lib/string/String#get:length + local.tee $10 + i32.le_u + if + local.get $3 + local.get $10 + i32.lt_u + if (result i32) + local.get $0 + call $~lib/rt/pure/__retain + else + local.get $5 + local.get $0 + local.get $7 + local.get $0 + call $~lib/string/String.__eq + select + call $~lib/rt/pure/__retain + end + local.set $0 + br $folding-inner0 + end + local.get $5 + call $~lib/string/String#get:length + local.set $2 local.get $10 - i32.lt_u - if (result i32) - local.get $0 - call $~lib/rt/pure/__retain - else + i32.eqz + if + local.get $2 + i32.eqz + if + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + br $folding-inner0 + end + local.get $3 + local.get $2 + local.get $3 + i32.const 1 + i32.add + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.tee $4 local.get $5 - local.get $0 + local.get $2 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.set $1 + loop $for-loop|0 + local.get $9 + local.get $3 + i32.lt_u + if + local.get $4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $4 + local.get $1 + i32.const 1 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $2 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $2 + i32.add + local.set $1 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 + end + end local.get $4 - local.get $0 - call $~lib/string/String.__eq - select call $~lib/rt/pure/__retain + local.set $0 + br $folding-inner0 end - return - end - local.get $5 - call $~lib/string/String#get:length - local.set $2 - local.get $10 - i32.eqz - if local.get $2 - i32.eqz + local.get $10 + i32.eq if + local.get $3 + i32.const 1 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.tee $1 local.get $0 + local.get $3 + call $~lib/memory/memory.copy + loop $while-continue|1 + local.get $0 + local.get $7 + local.get $6 + call $~lib/string/String#indexOf + local.tee $3 + i32.const -1 + i32.xor + if + local.get $1 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $2 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $10 + i32.add + local.set $6 + br $while-continue|1 + end + end + local.get $1 call $~lib/rt/pure/__retain - return + local.set $0 + br $folding-inner0 end local.get $3 - local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.mul - i32.add - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $4 - local.get $5 - local.get $2 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 local.set $1 - loop $for-loop|0 - local.get $9 - local.get $3 - i32.lt_u + loop $while-continue|2 + local.get $0 + local.get $7 + local.get $6 + call $~lib/string/String#indexOf + local.tee $9 + i32.const -1 + i32.xor if local.get $4 + i32.eqz + if + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.set $4 + end + local.get $8 local.get $1 + i32.gt_u + if + local.get $4 + local.get $1 + i32.const 1 + i32.shl + local.tee $1 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__realloc + local.set $4 + end + local.get $4 + local.get $8 i32.const 1 i32.shl i32.add local.get $0 - local.get $9 + local.get $6 i32.const 1 i32.shl i32.add - i32.load16_u - i32.store16 - local.get $4 - local.get $1 + local.get $9 + local.get $6 + i32.sub + local.tee $6 i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $4 + local.get $6 + local.get $8 i32.add - local.tee $1 + local.tee $6 i32.const 1 i32.shl i32.add @@ -4599,197 +4975,85 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 local.get $2 + local.get $6 i32.add - local.set $1 + local.set $8 local.get $9 - i32.const 1 + local.get $10 i32.add - local.set $9 - br $for-loop|0 + local.set $6 + br $while-continue|2 end end - local.get $4 - call $~lib/rt/pure/__retain - return - end - local.get $2 - local.get $10 - i32.eq - if - local.get $3 - i32.const 1 - i32.shl - local.tee $3 - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $1 - local.get $0 - local.get $3 - call $~lib/memory/memory.copy - loop $while-continue|1 - local.get $0 - local.get $4 - local.get $7 - call $~lib/string/String#indexOf - local.tee $3 - i32.const -1 - i32.xor + local.get $8 + if + local.get $8 + local.get $1 + i32.gt_u if + local.get $4 local.get $1 - local.get $3 i32.const 1 i32.shl - i32.add - local.get $5 - local.get $2 + local.tee $1 i32.const 1 i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.get $10 - i32.add - local.set $7 - br $while-continue|1 + call $~lib/rt/tlsf/__realloc + local.set $4 end - end - local.get $1 - call $~lib/rt/pure/__retain - return - end - local.get $3 - local.set $1 - loop $while-continue|2 - local.get $0 - local.get $4 - local.get $7 - call $~lib/string/String#indexOf - local.tee $9 - i32.const -1 - i32.xor - if + local.get $3 local.get $6 - i32.eqz + i32.sub + local.tee $2 if - local.get $3 + local.get $4 + local.get $8 i32.const 1 i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.set $6 - end - local.get $8 - local.get $1 - i32.gt_u - if + i32.add + local.get $0 local.get $6 - local.get $1 i32.const 1 i32.shl - local.tee $1 + i32.add + local.get $2 i32.const 1 i32.shl - call $~lib/rt/tlsf/__realloc - local.set $6 + call $~lib/memory/memory.copy end - local.get $6 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $7 - i32.const 1 - i32.shl - i32.add - local.get $9 - local.get $7 - i32.sub - local.tee $7 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $6 - local.get $7 - local.get $8 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $2 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $7 - i32.add - local.set $8 - local.get $9 - local.get $10 - i32.add - local.set $7 - br $while-continue|2 - end - end - local.get $8 - if - local.get $8 - local.get $1 - i32.gt_u - if - local.get $6 local.get $1 - i32.const 1 - i32.shl - local.tee $1 - i32.const 1 - i32.shl - call $~lib/rt/tlsf/__realloc - local.set $6 - end - local.get $3 - local.get $7 - i32.sub - local.tee $2 - if - local.get $6 + local.get $2 local.get $8 - i32.const 1 - i32.shl i32.add - local.get $0 - local.get $7 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - end - local.get $1 - local.get $2 - local.get $8 - i32.add - local.tee $0 - i32.gt_u - if (result i32) - local.get $6 - local.get $0 - i32.const 1 - i32.shl - call $~lib/rt/tlsf/__realloc - else - local.get $6 + local.tee $0 + i32.gt_u + if (result i32) + local.get $4 + local.get $0 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__realloc + else + local.get $4 + end + call $~lib/rt/pure/__retain + local.set $0 + br $folding-inner0 end + local.get $0 call $~lib/rt/pure/__retain + local.get $7 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release return end + local.get $7 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release local.get $0 - call $~lib/rt/pure/__retain ) (func $~lib/string/String#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -5194,13 +5458,16 @@ (local $5 i32) (local $6 i32) (local $7 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $2 local.get $0 i32.load offset=12 local.tee $6 i32.const 1 i32.add local.tee $3 - local.set $2 + local.set $1 local.get $3 local.get $0 i32.load offset=8 @@ -5209,7 +5476,7 @@ i32.shr_u i32.gt_u if - local.get $2 + local.get $1 i32.const 268435452 i32.gt_u if @@ -5224,26 +5491,26 @@ local.get $0 i32.load local.tee $7 - local.get $2 + local.get $1 i32.const 2 i32.shl local.tee $5 call $~lib/rt/tlsf/__realloc - local.tee $2 + local.tee $1 i32.add local.get $5 local.get $4 i32.sub call $~lib/memory/memory.fill - local.get $2 + local.get $1 local.get $7 i32.ne if local.get $0 - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 i32.store offset=4 end local.get $0 @@ -5256,12 +5523,14 @@ i32.const 2 i32.shl i32.add - local.get $1 + local.get $2 call $~lib/rt/pure/__retain i32.store local.get $0 local.get $3 i32.store offset=12 + local.get $2 + call $~lib/rt/pure/__release ) (func $~lib/string/String#split (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -5272,6 +5541,9 @@ (local $8 i32) (local $9 i32) (local $10 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 block $folding-inner0 local.get $2 i32.eqz @@ -5282,17 +5554,19 @@ i32.const 1 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 + local.tee $2 i32.load offset=4 local.get $0 call $~lib/rt/pure/__retain i32.store local.get $1 + call $~lib/rt/pure/__release + local.get $2 return end local.get $0 call $~lib/string/String#get:length - local.set $5 + local.set $4 i32.const 2147483647 local.get $2 local.get $2 @@ -5302,9 +5576,9 @@ local.set $2 local.get $1 call $~lib/string/String#get:length - local.tee $8 + local.tee $6 if - local.get $5 + local.get $4 i32.eqz if i32.const 1 @@ -5314,34 +5588,36 @@ i32.load offset=4 i32.const 1280 i32.store + local.get $1 + call $~lib/rt/pure/__release local.get $0 return end else - local.get $5 + local.get $4 i32.eqz br_if $folding-inner0 - local.get $5 + local.get $4 local.get $2 - local.get $5 + local.get $4 local.get $2 i32.lt_s select - local.tee $2 + local.tee $5 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $4 i32.load offset=4 - local.set $5 + local.set $6 loop $for-loop|0 local.get $3 - local.get $2 + local.get $5 i32.lt_s if i32.const 2 i32.const 1 call $~lib/rt/tlsf/__alloc - local.tee $1 + local.tee $2 local.get $3 i32.const 1 i32.shl @@ -5352,11 +5628,11 @@ local.get $3 i32.const 2 i32.shl - local.get $5 + local.get $6 i32.add - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/rt/pure/__retain drop local.get $3 @@ -5366,6 +5642,8 @@ br $for-loop|0 end end + local.get $1 + call $~lib/rt/pure/__release local.get $4 return end @@ -5376,32 +5654,32 @@ loop $while-continue|1 local.get $0 local.get $1 - local.get $4 + local.get $5 call $~lib/string/String#indexOf - local.tee $7 + local.tee $8 i32.const -1 i32.xor if - local.get $7 - local.get $4 + local.get $8 + local.get $5 i32.sub - local.tee $6 + local.tee $7 i32.const 0 i32.gt_s if - local.get $6 + local.get $7 i32.const 1 i32.shl - local.tee $6 + local.tee $7 i32.const 1 call $~lib/rt/tlsf/__alloc local.tee $9 - local.get $4 + local.get $5 i32.const 1 i32.shl local.get $0 i32.add - local.get $6 + local.get $7 call $~lib/memory/memory.copy local.get $3 local.get $9 @@ -5418,60 +5696,68 @@ local.get $2 i32.eq if + local.get $1 + call $~lib/rt/pure/__release local.get $3 return end - local.get $7 + local.get $6 local.get $8 i32.add - local.set $4 + local.set $5 br $while-continue|1 end end - local.get $4 + local.get $5 i32.eqz if local.get $3 local.get $0 call $~lib/array/Array<~lib/string/String>#push + local.get $1 + call $~lib/rt/pure/__release local.get $3 return end - local.get $5 local.get $4 + local.get $5 i32.sub - local.tee $1 + local.tee $2 i32.const 0 i32.gt_s if - local.get $1 + local.get $2 i32.const 1 i32.shl - local.tee $1 + local.tee $2 i32.const 1 call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $4 + local.tee $4 + local.get $5 i32.const 1 i32.shl local.get $0 i32.add - local.get $1 + local.get $2 call $~lib/memory/memory.copy local.get $3 - local.get $2 + local.get $4 call $~lib/array/Array<~lib/string/String>#push else local.get $3 i32.const 1280 call $~lib/array/Array<~lib/string/String>#push end + local.get $1 + call $~lib/rt/pure/__release local.get $3 return end i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain + local.get $1 + call $~lib/rt/pure/__release ) (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -7341,7 +7627,7 @@ (local $70 i32) (local $71 i32) (local $72 i32) - (local $73 i32) + (local $73 i64) (local $74 i32) (local $75 i32) (local $76 i32) @@ -7566,6 +7852,7 @@ (local $295 i32) (local $296 i32) (local $297 i32) + (local $298 i32) global.get $std/string/str i32.const 1040 i32.ne @@ -7804,17 +8091,17 @@ i32.const 0 local.get $12 call $~lib/string/String#get:length - local.tee $11 + local.tee $3 i32.const 0 - local.get $11 + local.get $3 i32.lt_s select - local.tee $8 + local.tee $9 local.get $1 call $~lib/string/String#get:length local.tee $0 i32.add - local.get $11 + local.get $3 i32.gt_s if local.get $1 @@ -7824,7 +8111,7 @@ br $__inlined_func$~lib/string/String#startsWith end local.get $12 - local.get $8 + local.get $9 local.get $1 local.get $0 call $~lib/util/string/compareImpl @@ -7843,11 +8130,11 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/string/String#endsWith (result i32) - i32.const 0 + global.get $std/string/str + local.set $9 + block $__inlined_func$~lib/string/String#endsWith i32.const 536870904 - global.get $std/string/str - local.tee $8 + local.get $9 call $~lib/string/String#get:length local.tee $0 i32.const 536870904 @@ -7861,15 +8148,24 @@ local.tee $0 i32.const 0 i32.lt_s - br_if $__inlined_func$~lib/string/String#endsWith - drop - local.get $8 + if + i32.const 1680 + call $~lib/rt/pure/__release + i32.const 0 + local.set $0 + br $__inlined_func$~lib/string/String#endsWith + end + local.get $9 local.get $0 i32.const 1680 local.get $1 call $~lib/util/string/compareImpl i32.eqz + local.set $0 + i32.const 1680 + call $~lib/rt/pure/__release end + local.get $0 i32.eqz if i32.const 0 @@ -7884,7 +8180,10 @@ i32.const 0 call $~lib/string/String#indexOf i32.const -1 - i32.eq + i32.ne + i32.const 1712 + call $~lib/rt/pure/__release + i32.eqz if i32.const 0 i32.const 1088 @@ -8685,7 +8984,7 @@ unreachable end i32.const 2432 - call $~lib/util/string/strtol + call $~lib/string/parseInt f64.const 0 f64.ne if @@ -8697,7 +8996,7 @@ unreachable end i32.const 2464 - call $~lib/util/string/strtol + call $~lib/string/parseInt f64.const 0 f64.ne if @@ -8709,7 +9008,7 @@ unreachable end i32.const 2496 - call $~lib/util/string/strtol + call $~lib/string/parseInt f64.const 1 f64.ne if @@ -8721,7 +9020,7 @@ unreachable end i32.const 2528 - call $~lib/util/string/strtol + call $~lib/string/parseInt f64.const 1 f64.ne if @@ -8733,7 +9032,7 @@ unreachable end i32.const 2560 - call $~lib/util/string/strtol + call $~lib/string/parseInt f64.const 5 f64.ne if @@ -8745,7 +9044,7 @@ unreachable end i32.const 2592 - call $~lib/util/string/strtol + call $~lib/string/parseInt f64.const 455 f64.ne if @@ -8757,7 +9056,7 @@ unreachable end i32.const 2624 - call $~lib/util/string/strtol + call $~lib/string/parseInt f64.const 3855 f64.ne if @@ -8769,7 +9068,7 @@ unreachable end i32.const 2656 - call $~lib/util/string/strtol + call $~lib/string/parseInt f64.const 3855 f64.ne if @@ -8781,7 +9080,7 @@ unreachable end i32.const 2688 - call $~lib/util/string/strtol + call $~lib/string/parseInt f64.const 11 f64.ne if @@ -8793,7 +9092,7 @@ unreachable end i32.const 2720 - call $~lib/util/string/strtol + call $~lib/string/parseInt f64.const 1 f64.ne if @@ -8805,7 +9104,7 @@ unreachable end i32.const 2752 - call $~lib/util/string/strtol + call $~lib/string/parseInt f64.const -123 f64.ne if @@ -8817,7 +9116,7 @@ unreachable end i32.const 2784 - call $~lib/util/string/strtol + call $~lib/string/parseInt f64.const 123 f64.ne if @@ -8829,7 +9128,7 @@ unreachable end i32.const 2816 - call $~lib/util/string/strtol + call $~lib/string/parseInt f64.const -12 f64.ne if @@ -8841,7 +9140,7 @@ unreachable end i32.const 2848 - call $~lib/util/string/strtol + call $~lib/string/parseInt f64.const 1 f64.ne if @@ -8853,7 +9152,7 @@ unreachable end i32.const 2880 - call $~lib/util/string/strtol + call $~lib/string/parseInt f64.const 2 f64.ne if @@ -8864,7 +9163,10 @@ call $~lib/builtins/abort unreachable end + i32.const 2912 call $~lib/util/string/strtol + i32.const 2912 + call $~lib/rt/pure/__release i32.const 2147483647 i32.ne if @@ -8875,7 +9177,10 @@ call $~lib/builtins/abort unreachable end + i32.const 2960 call $~lib/util/string/strtol + i32.const 2960 + call $~lib/rt/pure/__release i64.const 9223372036854775807 i64.ne if @@ -8887,7 +9192,7 @@ unreachable end i32.const 2432 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -8899,7 +9204,7 @@ unreachable end i32.const 2496 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1 f64.ne if @@ -8911,7 +9216,7 @@ unreachable end i32.const 3200 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1 f64.ne if @@ -8923,7 +9228,7 @@ unreachable end i32.const 3232 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1 f64.ne if @@ -8935,7 +9240,7 @@ unreachable end i32.const 3264 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1e-05 f64.ne if @@ -8947,7 +9252,7 @@ unreachable end i32.const 3296 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const -1e-05 f64.ne if @@ -8959,7 +9264,7 @@ unreachable end i32.const 3328 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const -3e-23 f64.ne if @@ -8971,7 +9276,7 @@ unreachable end i32.const 3360 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 3e21 f64.ne if @@ -8983,7 +9288,7 @@ unreachable end i32.const 3392 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.1 f64.ne if @@ -8995,7 +9300,7 @@ unreachable end i32.const 3424 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.1 f64.ne if @@ -9007,7 +9312,7 @@ unreachable end i32.const 3456 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.1 f64.ne if @@ -9019,7 +9324,7 @@ unreachable end i32.const 3488 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.25 f64.ne if @@ -9031,7 +9336,7 @@ unreachable end i32.const 3520 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1e3 f64.ne if @@ -9043,7 +9348,7 @@ unreachable end i32.const 3552 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1e-10 f64.ne if @@ -9055,7 +9360,7 @@ unreachable end i32.const 3584 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1e-30 f64.ne if @@ -9067,7 +9372,7 @@ unreachable end i32.const 3616 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1e-323 f64.ne if @@ -9079,7 +9384,7 @@ unreachable end i32.const 3648 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9091,7 +9396,7 @@ unreachable end i32.const 3680 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1.e+308 f64.ne if @@ -9103,7 +9408,7 @@ unreachable end i32.const 3712 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const inf f64.ne if @@ -9115,7 +9420,7 @@ unreachable end i32.const 1280 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -9128,7 +9433,7 @@ unreachable end i32.const 3744 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.1 f64.ne if @@ -9140,7 +9445,7 @@ unreachable end i32.const 3776 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1e-10 f64.ne if @@ -9152,7 +9457,7 @@ unreachable end i32.const 3824 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 10 f64.ne if @@ -9164,7 +9469,7 @@ unreachable end i32.const 3856 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1 f64.ne if @@ -9176,7 +9481,7 @@ unreachable end i32.const 3888 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1 f64.ne if @@ -9188,7 +9493,7 @@ unreachable end i32.const 3920 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 10 f64.ne if @@ -9200,7 +9505,7 @@ unreachable end i32.const 3968 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 123456789 f64.ne if @@ -9212,7 +9517,7 @@ unreachable end i32.const 4016 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1 f64.ne if @@ -9224,7 +9529,7 @@ unreachable end i32.const 4064 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1e-60 f64.ne if @@ -9236,7 +9541,7 @@ unreachable end i32.const 4096 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1.e+60 f64.ne if @@ -9248,7 +9553,7 @@ unreachable end i32.const 4128 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const -0 f64.ne if @@ -9260,7 +9565,7 @@ unreachable end i32.const 4160 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1 f64.ne if @@ -9272,7 +9577,7 @@ unreachable end i32.const 4192 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const -1.1 f64.ne if @@ -9284,7 +9589,7 @@ unreachable end i32.const 4240 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 10 f64.ne if @@ -9296,7 +9601,7 @@ unreachable end i32.const 4288 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 10 f64.ne if @@ -9308,7 +9613,7 @@ unreachable end i32.const 4336 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.022 f64.ne if @@ -9320,7 +9625,7 @@ unreachable end i32.const 4368 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 11 f64.ne if @@ -9332,7 +9637,7 @@ unreachable end i32.const 4400 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9344,7 +9649,7 @@ unreachable end i32.const 4432 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9356,7 +9661,7 @@ unreachable end i32.const 4464 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9368,7 +9673,7 @@ unreachable end i32.const 4496 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1.1 f64.ne if @@ -9380,7 +9685,7 @@ unreachable end i32.const 4528 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const -1.1 f64.ne if @@ -9392,7 +9697,7 @@ unreachable end i32.const 4560 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const -1.1 f64.ne if @@ -9404,7 +9709,7 @@ unreachable end i32.const 4592 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const -1.1 f64.ne if @@ -9416,7 +9721,7 @@ unreachable end i32.const 4624 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const -1.1 f64.ne if @@ -9428,7 +9733,7 @@ unreachable end i32.const 4656 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9440,7 +9745,7 @@ unreachable end i32.const 4688 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9452,7 +9757,7 @@ unreachable end i32.const 4720 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1 f64.ne if @@ -9464,7 +9769,7 @@ unreachable end i32.const 4752 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9476,7 +9781,7 @@ unreachable end i32.const 4784 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9488,7 +9793,7 @@ unreachable end i32.const 4816 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 10 f64.ne if @@ -9500,7 +9805,7 @@ unreachable end i32.const 4848 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 10 f64.ne if @@ -9512,7 +9817,7 @@ unreachable end i32.const 4880 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9524,7 +9829,7 @@ unreachable end i32.const 4912 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1 f64.ne if @@ -9536,7 +9841,7 @@ unreachable end i32.const 4944 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.1 f64.ne if @@ -9548,7 +9853,7 @@ unreachable end i32.const 4976 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1 f64.ne if @@ -9560,7 +9865,7 @@ unreachable end i32.const 5008 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 10 f64.ne if @@ -9572,7 +9877,7 @@ unreachable end i32.const 5040 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1 f64.ne if @@ -9584,7 +9889,7 @@ unreachable end i32.const 5072 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.1 f64.ne if @@ -9596,7 +9901,7 @@ unreachable end i32.const 5104 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.01 f64.ne if @@ -9608,7 +9913,7 @@ unreachable end i32.const 5136 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9620,7 +9925,7 @@ unreachable end i32.const 5168 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9632,7 +9937,7 @@ unreachable end i32.const 5200 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9644,7 +9949,7 @@ unreachable end i32.const 5232 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.1 f64.ne if @@ -9656,7 +9961,7 @@ unreachable end i32.const 5264 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9668,7 +9973,7 @@ unreachable end i32.const 5296 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9680,7 +9985,7 @@ unreachable end i32.const 5328 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1 f64.ne if @@ -9692,7 +9997,7 @@ unreachable end i32.const 5360 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.1 f64.ne if @@ -9704,7 +10009,7 @@ unreachable end i32.const 5392 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9716,7 +10021,7 @@ unreachable end i32.const 5424 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9728,7 +10033,7 @@ unreachable end i32.const 5456 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const -0 f64.ne if @@ -9740,7 +10045,7 @@ unreachable end i32.const 5488 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9752,7 +10057,7 @@ unreachable end i32.const 5520 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -9764,7 +10069,7 @@ unreachable end i32.const 5552 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -9777,7 +10082,7 @@ unreachable end i32.const 5584 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -9790,7 +10095,7 @@ unreachable end i32.const 5616 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -9803,7 +10108,7 @@ unreachable end i32.const 5648 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -9816,7 +10121,7 @@ unreachable end i32.const 5680 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -9829,7 +10134,7 @@ unreachable end i32.const 5712 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -9842,7 +10147,7 @@ unreachable end i32.const 5744 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -9855,7 +10160,7 @@ unreachable end i32.const 5776 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -9868,7 +10173,7 @@ unreachable end i32.const 5808 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -9881,7 +10186,7 @@ unreachable end i32.const 5840 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -9894,7 +10199,7 @@ unreachable end i32.const 5872 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -9907,7 +10212,7 @@ unreachable end i32.const 5904 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -9920,7 +10225,7 @@ unreachable end i32.const 5936 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -9933,7 +10238,7 @@ unreachable end i32.const 5968 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -9946,7 +10251,7 @@ unreachable end i32.const 6000 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -9959,7 +10264,7 @@ unreachable end i32.const 6032 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -9972,7 +10277,7 @@ unreachable end i32.const 6064 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1e22 f64.ne if @@ -9984,7 +10289,7 @@ unreachable end i32.const 6096 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1e-22 f64.ne if @@ -9996,7 +10301,7 @@ unreachable end i32.const 6128 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1.e+23 f64.ne if @@ -10008,7 +10313,7 @@ unreachable end i32.const 6160 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1e-23 f64.ne if @@ -10020,7 +10325,7 @@ unreachable end i32.const 6192 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1.e+37 f64.ne if @@ -10032,7 +10337,7 @@ unreachable end i32.const 6224 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1e-37 f64.ne if @@ -10044,7 +10349,7 @@ unreachable end i32.const 6256 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1.e+38 f64.ne if @@ -10056,7 +10361,7 @@ unreachable end i32.const 6288 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1e-38 f64.ne if @@ -10068,7 +10373,7 @@ unreachable end i32.const 6320 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 2.220446049250313e-16 f64.ne if @@ -10080,7 +10385,7 @@ unreachable end i32.const 6384 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1797693134862315708145274e284 f64.ne if @@ -10092,7 +10397,7 @@ unreachable end i32.const 6448 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 5e-324 f64.ne if @@ -10104,7 +10409,7 @@ unreachable end i32.const 6480 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1.e+308 f64.ne if @@ -10116,7 +10421,7 @@ unreachable end i32.const 6528 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1 f64.ne if @@ -10128,7 +10433,7 @@ unreachable end i32.const 6672 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -10140,7 +10445,7 @@ unreachable end i32.const 6704 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const inf f64.ne if @@ -10152,7 +10457,7 @@ unreachable end i32.const 6736 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -10164,7 +10469,7 @@ unreachable end i32.const 6768 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const -inf f64.ne if @@ -10176,7 +10481,7 @@ unreachable end i32.const 6800 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -10188,7 +10493,7 @@ unreachable end i32.const 6848 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const inf f64.ne if @@ -10200,7 +10505,7 @@ unreachable end i32.const 6896 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const inf f64.ne if @@ -10212,7 +10517,7 @@ unreachable end i32.const 6928 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const inf f64.ne if @@ -10224,7 +10529,7 @@ unreachable end i32.const 6976 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const inf f64.ne if @@ -10236,7 +10541,7 @@ unreachable end i32.const 7024 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const -inf f64.ne if @@ -10248,7 +10553,7 @@ unreachable end i32.const 7072 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const inf f64.ne if @@ -10260,7 +10565,7 @@ unreachable end i32.const 7120 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const inf f64.ne if @@ -10272,7 +10577,7 @@ unreachable end i32.const 7168 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -10285,7 +10590,7 @@ unreachable end i32.const 7200 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -10298,7 +10603,7 @@ unreachable end i32.const 7232 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -10311,7 +10616,7 @@ unreachable end i32.const 7264 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0 f64.ne if @@ -10323,7 +10628,7 @@ unreachable end i32.const 7456 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1e-323 f64.ne if @@ -10335,7 +10640,7 @@ unreachable end i32.const 7648 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 2.225073858507202e-308 f64.ne if @@ -10349,17 +10654,17 @@ i32.const 7840 i32.const 8000 call $~lib/string/String.__concat - local.tee $73 + local.tee $74 i32.const 8160 call $~lib/string/String.__concat - local.tee $74 + local.tee $75 i32.const 8320 call $~lib/string/String.__concat - local.tee $75 + local.tee $76 i32.const 8480 call $~lib/string/String.__concat - local.tee $76 - call $~lib/util/string/strtod + local.tee $77 + call $~lib/string/parseFloat f64.const 1797693134862315708145274e284 f64.ne if @@ -10371,7 +10676,7 @@ unreachable end i32.const 8640 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 9.753531888799502e-104 f64.ne if @@ -10383,7 +10688,7 @@ unreachable end i32.const 8752 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.5961860348131807 f64.ne if @@ -10395,7 +10700,7 @@ unreachable end i32.const 8864 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.18150131692180388 f64.ne if @@ -10407,7 +10712,7 @@ unreachable end i32.const 8976 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.42070823575344535 f64.ne if @@ -10419,7 +10724,7 @@ unreachable end i32.const 9088 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.6654686306516261 f64.ne if @@ -10431,7 +10736,7 @@ unreachable end i32.const 9200 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.6101852922970868 f64.ne if @@ -10443,7 +10748,7 @@ unreachable end i32.const 9312 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.7696695208236968 f64.ne if @@ -10455,7 +10760,7 @@ unreachable end i32.const 9424 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.25050653222286823 f64.ne if @@ -10467,7 +10772,7 @@ unreachable end i32.const 9536 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.2740037230228005 f64.ne if @@ -10479,7 +10784,7 @@ unreachable end i32.const 9648 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.20723093500497428 f64.ne if @@ -10491,7 +10796,7 @@ unreachable end i32.const 9760 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 7.900280238081605 f64.ne if @@ -10503,7 +10808,7 @@ unreachable end i32.const 9872 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 98.22860653737297 f64.ne if @@ -10515,7 +10820,7 @@ unreachable end i32.const 9984 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 746.894972319037 f64.ne if @@ -10527,7 +10832,7 @@ unreachable end i32.const 10096 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 1630.2683202827284 f64.ne if @@ -10539,7 +10844,7 @@ unreachable end i32.const 10208 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 46371.68629719171 f64.ne if @@ -10551,7 +10856,7 @@ unreachable end i32.const 10320 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 653780.5944497711 f64.ne if @@ -10563,7 +10868,7 @@ unreachable end i32.const 10432 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 234632.43565024371 f64.ne if @@ -10575,7 +10880,7 @@ unreachable end i32.const 10544 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 97094817.16420048 f64.ne if @@ -10587,7 +10892,7 @@ unreachable end i32.const 10656 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 499690852.20518744 f64.ne if @@ -10599,7 +10904,7 @@ unreachable end i32.const 10768 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 7925201200557245595648 f64.ne if @@ -10611,7 +10916,7 @@ unreachable end i32.const 10880 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 6096564585983177528398588e5 f64.ne if @@ -10623,7 +10928,7 @@ unreachable end i32.const 10992 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 4800416117477028695992383e42 f64.ne if @@ -10635,7 +10940,7 @@ unreachable end i32.const 11104 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 8524829079817968137287277e80 f64.ne if @@ -10647,7 +10952,7 @@ unreachable end i32.const 11216 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 3271239291709782092398754e243 f64.ne if @@ -10659,7 +10964,7 @@ unreachable end i32.const 11328 - call $~lib/util/string/strtod + call $~lib/string/parseFloat local.tee $2 local.get $2 f64.eq @@ -10672,7 +10977,7 @@ unreachable end i32.const 11360 - call $~lib/util/string/strtod + call $~lib/string/parseFloat f64.const 0.1 f64.ne if @@ -10686,8 +10991,9 @@ i32.const 1328 i32.const 11392 call $~lib/string/String.__concat + local.tee $0 + call $~lib/rt/pure/__retain local.tee $1 - local.get $1 i32.const 11424 call $~lib/string/String.__eq i32.eqz @@ -10699,8 +11005,10 @@ call $~lib/builtins/abort unreachable end + local.get $1 i32.const 1328 - call $~lib/string/String.__eq + call $~lib/string/String.__ne + i32.eqz if i32.const 0 i32.const 1088 @@ -10709,6 +11017,8 @@ call $~lib/builtins/abort unreachable end + local.get $0 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release i32.const 1280 @@ -10725,7 +11035,8 @@ end i32.const 1280 i32.const 0 - call $~lib/string/String.__eq + call $~lib/string/String.__ne + i32.eqz if i32.const 0 i32.const 1088 @@ -10736,7 +11047,8 @@ end i32.const 0 i32.const 1280 - call $~lib/string/String.__eq + call $~lib/string/String.__ne + i32.eqz if i32.const 0 i32.const 1088 @@ -10747,7 +11059,8 @@ end i32.const 1328 i32.const 11392 - call $~lib/string/String.__eq + call $~lib/string/String.__ne + i32.eqz if i32.const 0 i32.const 1088 @@ -10770,7 +11083,8 @@ end i32.const 11456 i32.const 11488 - call $~lib/string/String.__eq + call $~lib/string/String.__ne + i32.eqz if i32.const 0 i32.const 1088 @@ -10793,7 +11107,8 @@ end i32.const 11520 i32.const 11552 - call $~lib/string/String.__eq + call $~lib/string/String.__ne + i32.eqz if i32.const 0 i32.const 1088 @@ -10804,7 +11119,8 @@ end i32.const 11584 i32.const 11616 - call $~lib/string/String.__eq + call $~lib/string/String.__ne + i32.eqz if i32.const 0 i32.const 1088 @@ -10827,7 +11143,8 @@ end i32.const 11648 i32.const 11680 - call $~lib/string/String.__eq + call $~lib/string/String.__ne + i32.eqz if i32.const 0 i32.const 1088 @@ -10838,7 +11155,8 @@ end i32.const 11712 i32.const 11760 - call $~lib/string/String.__eq + call $~lib/string/String.__ne + i32.eqz if i32.const 0 i32.const 1088 @@ -10873,7 +11191,8 @@ end i32.const 11808 i32.const 11840 - call $~lib/string/String.__lt + call $~lib/string/String.__gte + i32.eqz if i32.const 0 i32.const 1088 @@ -10953,7 +11272,8 @@ end i32.const 1808 i32.const 1280 - call $~lib/string/String.__lt + call $~lib/string/String.__gte + i32.eqz if i32.const 0 i32.const 1088 @@ -10962,9 +11282,9 @@ call $~lib/builtins/abort unreachable end - i32.const 1280 i32.const 1808 - call $~lib/string/String.__gt + call $~lib/string/String.__lte + i32.eqz if i32.const 0 i32.const 1088 @@ -11019,7 +11339,8 @@ end i32.const 1280 i32.const 1280 - call $~lib/string/String.__lt + call $~lib/string/String.__gte + i32.eqz if i32.const 0 i32.const 1088 @@ -11029,8 +11350,8 @@ unreachable end i32.const 1280 - i32.const 1280 - call $~lib/string/String.__gt + call $~lib/string/String.__lte + i32.eqz if i32.const 0 i32.const 1088 @@ -11041,14 +11362,16 @@ end i32.const 65377 call $~lib/string/String.fromCodePoint - local.tee $11 + local.tee $12 i32.const 55296 call $~lib/string/String.fromCodePoint - local.tee $8 + local.tee $3 i32.const 56322 call $~lib/string/String.fromCodePoint - local.tee $1 + local.tee $9 call $~lib/string/String.__concat + local.tee $1 + call $~lib/rt/pure/__retain local.tee $0 call $~lib/string/String.__gt i32.eqz @@ -11060,9 +11383,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $12 call $~lib/rt/pure/__release - local.get $8 + local.get $3 + call $~lib/rt/pure/__release + local.get $9 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release @@ -11083,7 +11408,7 @@ i32.const 1280 i32.const 100 call $~lib/string/String#repeat - local.tee $77 + local.tee $78 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -11098,7 +11423,7 @@ i32.const 1328 i32.const 0 call $~lib/string/String#repeat - local.tee $78 + local.tee $79 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -11113,7 +11438,7 @@ i32.const 1328 i32.const 1 call $~lib/string/String#repeat - local.tee $79 + local.tee $80 i32.const 1328 call $~lib/string/String.__eq i32.eqz @@ -11128,7 +11453,7 @@ i32.const 1328 i32.const 2 call $~lib/string/String#repeat - local.tee $80 + local.tee $81 i32.const 11840 call $~lib/string/String.__eq i32.eqz @@ -11143,7 +11468,7 @@ i32.const 1328 i32.const 3 call $~lib/string/String#repeat - local.tee $81 + local.tee $82 i32.const 11920 call $~lib/string/String.__eq i32.eqz @@ -11158,7 +11483,7 @@ i32.const 11424 i32.const 4 call $~lib/string/String#repeat - local.tee $82 + local.tee $83 i32.const 11952 call $~lib/string/String.__eq i32.eqz @@ -11173,7 +11498,7 @@ i32.const 1328 i32.const 5 call $~lib/string/String#repeat - local.tee $83 + local.tee $84 i32.const 11984 call $~lib/string/String.__eq i32.eqz @@ -11188,7 +11513,7 @@ i32.const 1328 i32.const 6 call $~lib/string/String#repeat - local.tee $84 + local.tee $85 i32.const 12016 call $~lib/string/String.__eq i32.eqz @@ -11203,7 +11528,7 @@ i32.const 1328 i32.const 7 call $~lib/string/String#repeat - local.tee $85 + local.tee $86 i32.const 12048 call $~lib/string/String.__eq i32.eqz @@ -11219,7 +11544,7 @@ i32.const 1280 i32.const 1280 call $~lib/string/String#replace - local.tee $86 + local.tee $87 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -11235,7 +11560,7 @@ i32.const 1280 i32.const 5552 call $~lib/string/String#replace - local.tee $87 + local.tee $88 i32.const 5552 call $~lib/string/String.__eq i32.eqz @@ -11251,7 +11576,7 @@ i32.const 5552 i32.const 1280 call $~lib/string/String#replace - local.tee $88 + local.tee $89 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -11267,7 +11592,7 @@ i32.const 1280 i32.const 1280 call $~lib/string/String#replace - local.tee $89 + local.tee $90 i32.const 5552 call $~lib/string/String.__eq i32.eqz @@ -11283,7 +11608,7 @@ i32.const 5584 i32.const 5552 call $~lib/string/String#replace - local.tee $90 + local.tee $91 i32.const 1808 call $~lib/string/String.__eq i32.eqz @@ -11299,7 +11624,7 @@ i32.const 1808 i32.const 5552 call $~lib/string/String#replace - local.tee $91 + local.tee $92 i32.const 5552 call $~lib/string/String.__eq i32.eqz @@ -11315,7 +11640,7 @@ i32.const 2256 i32.const 5552 call $~lib/string/String#replace - local.tee $92 + local.tee $93 i32.const 1808 call $~lib/string/String.__eq i32.eqz @@ -11331,7 +11656,7 @@ i32.const 11424 i32.const 11424 call $~lib/string/String#replace - local.tee $93 + local.tee $94 i32.const 1808 call $~lib/string/String.__eq i32.eqz @@ -11347,7 +11672,7 @@ i32.const 5584 i32.const 5552 call $~lib/string/String#replace - local.tee $94 + local.tee $95 i32.const 12112 call $~lib/string/String.__eq i32.eqz @@ -11363,7 +11688,7 @@ i32.const 1280 i32.const 5552 call $~lib/string/String#replace - local.tee $95 + local.tee $96 i32.const 12144 call $~lib/string/String.__eq i32.eqz @@ -11379,7 +11704,7 @@ i32.const 12208 i32.const 5552 call $~lib/string/String#replace - local.tee $96 + local.tee $97 i32.const 12144 call $~lib/string/String.__eq i32.eqz @@ -11395,7 +11720,7 @@ i32.const 12240 i32.const 12272 call $~lib/string/String#replace - local.tee $97 + local.tee $98 i32.const 12304 call $~lib/string/String.__eq i32.eqz @@ -11411,7 +11736,7 @@ i32.const 12240 i32.const 1280 call $~lib/string/String#replace - local.tee $98 + local.tee $99 i32.const 11424 call $~lib/string/String.__eq i32.eqz @@ -11427,7 +11752,7 @@ i32.const 1280 i32.const 1808 call $~lib/string/String#replaceAll - local.tee $99 + local.tee $100 i32.const 1808 call $~lib/string/String.__eq i32.eqz @@ -11443,7 +11768,7 @@ i32.const 5584 i32.const 5552 call $~lib/string/String#replaceAll - local.tee $100 + local.tee $101 i32.const 1808 call $~lib/string/String.__eq i32.eqz @@ -11459,7 +11784,7 @@ i32.const 1808 i32.const 5552 call $~lib/string/String#replaceAll - local.tee $101 + local.tee $102 i32.const 12272 call $~lib/string/String.__eq i32.eqz @@ -11475,7 +11800,7 @@ i32.const 1808 i32.const 5552 call $~lib/string/String#replaceAll - local.tee $102 + local.tee $103 i32.const 12384 call $~lib/string/String.__eq i32.eqz @@ -11491,7 +11816,7 @@ i32.const 11424 i32.const 11424 call $~lib/string/String#replaceAll - local.tee $103 + local.tee $104 i32.const 2000 call $~lib/string/String.__eq i32.eqz @@ -11507,7 +11832,7 @@ i32.const 1328 i32.const 12384 call $~lib/string/String#replaceAll - local.tee $104 + local.tee $105 i32.const 12448 call $~lib/string/String.__eq i32.eqz @@ -11523,7 +11848,7 @@ i32.const 11424 i32.const 12272 call $~lib/string/String#replaceAll - local.tee $105 + local.tee $106 i32.const 12496 call $~lib/string/String.__eq i32.eqz @@ -11539,7 +11864,7 @@ i32.const 12560 i32.const 12272 call $~lib/string/String#replaceAll - local.tee $106 + local.tee $107 i32.const 12592 call $~lib/string/String.__eq i32.eqz @@ -11555,7 +11880,7 @@ i32.const 2256 i32.const 5552 call $~lib/string/String#replaceAll - local.tee $107 + local.tee $108 i32.const 1808 call $~lib/string/String.__eq i32.eqz @@ -11571,7 +11896,7 @@ i32.const 12624 i32.const 12272 call $~lib/string/String#replaceAll - local.tee $108 + local.tee $109 i32.const 2256 call $~lib/string/String.__eq i32.eqz @@ -11587,7 +11912,7 @@ i32.const 12656 i32.const 5552 call $~lib/string/String#replaceAll - local.tee $109 + local.tee $110 i32.const 12688 call $~lib/string/String.__eq i32.eqz @@ -11603,7 +11928,7 @@ i32.const 11424 i32.const 5552 call $~lib/string/String#replaceAll - local.tee $110 + local.tee $111 i32.const 5552 call $~lib/string/String.__eq i32.eqz @@ -11619,7 +11944,7 @@ i32.const 5584 i32.const 5552 call $~lib/string/String#replaceAll - local.tee $111 + local.tee $112 i32.const 12720 call $~lib/string/String.__eq i32.eqz @@ -11635,7 +11960,7 @@ i32.const 1280 i32.const 1280 call $~lib/string/String#replaceAll - local.tee $112 + local.tee $113 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -11651,7 +11976,7 @@ i32.const 1280 i32.const 5552 call $~lib/string/String#replaceAll - local.tee $113 + local.tee $114 i32.const 5552 call $~lib/string/String.__eq i32.eqz @@ -11667,7 +11992,7 @@ i32.const 5552 i32.const 1280 call $~lib/string/String#replaceAll - local.tee $114 + local.tee $115 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -11683,7 +12008,7 @@ i32.const 1280 i32.const 1280 call $~lib/string/String#replaceAll - local.tee $115 + local.tee $116 i32.const 5552 call $~lib/string/String.__eq i32.eqz @@ -11699,7 +12024,7 @@ i32.const 1808 i32.const 5584 call $~lib/string/String#replaceAll - local.tee $116 + local.tee $117 i32.const 5584 call $~lib/string/String.__eq i32.eqz @@ -11715,7 +12040,7 @@ i32.const 2224 i32.const 5584 call $~lib/string/String#replaceAll - local.tee $117 + local.tee $118 i32.const 1808 call $~lib/string/String.__eq i32.eqz @@ -11731,7 +12056,7 @@ i32.const 1280 i32.const 5552 call $~lib/string/String#replaceAll - local.tee $118 + local.tee $119 i32.const 12752 call $~lib/string/String.__eq i32.eqz @@ -11747,7 +12072,7 @@ i32.const 1280 i32.const 1280 call $~lib/string/String#replaceAll - local.tee $119 + local.tee $120 i32.const 1808 call $~lib/string/String.__eq i32.eqz @@ -11767,7 +12092,7 @@ i32.const 0 i32.const 2147483647 call $~lib/string/String#slice - local.tee $120 + local.tee $121 i32.const 12784 call $~lib/string/String.__eq i32.eqz @@ -11783,7 +12108,7 @@ i32.const -1 i32.const 2147483647 call $~lib/string/String#slice - local.tee $121 + local.tee $122 i32.const 12832 call $~lib/string/String.__eq i32.eqz @@ -11799,7 +12124,7 @@ i32.const -5 i32.const 2147483647 call $~lib/string/String#slice - local.tee $122 + local.tee $123 i32.const 12864 call $~lib/string/String.__eq i32.eqz @@ -11815,7 +12140,7 @@ i32.const 2 i32.const 7 call $~lib/string/String#slice - local.tee $123 + local.tee $124 i32.const 12896 call $~lib/string/String.__eq i32.eqz @@ -11831,7 +12156,7 @@ i32.const -11 i32.const -6 call $~lib/string/String#slice - local.tee $124 + local.tee $125 i32.const 12928 call $~lib/string/String.__eq i32.eqz @@ -11847,7 +12172,7 @@ i32.const 4 i32.const 3 call $~lib/string/String#slice - local.tee $125 + local.tee $126 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -11863,7 +12188,7 @@ i32.const 0 i32.const -1 call $~lib/string/String#slice - local.tee $126 + local.tee $127 i32.const 12960 call $~lib/string/String.__eq i32.eqz @@ -11879,7 +12204,7 @@ i32.const 0 i32.const 2147483647 call $~lib/string/String#substr - local.tee $127 + local.tee $128 i32.const 12784 call $~lib/string/String.__eq i32.eqz @@ -11895,7 +12220,7 @@ i32.const -1 i32.const 2147483647 call $~lib/string/String#substr - local.tee $128 + local.tee $129 i32.const 12832 call $~lib/string/String.__eq i32.eqz @@ -11911,7 +12236,7 @@ i32.const -5 i32.const 2147483647 call $~lib/string/String#substr - local.tee $129 + local.tee $130 i32.const 12864 call $~lib/string/String.__eq i32.eqz @@ -11927,7 +12252,7 @@ i32.const 2 i32.const 7 call $~lib/string/String#substr - local.tee $130 + local.tee $131 i32.const 13008 call $~lib/string/String.__eq i32.eqz @@ -11943,7 +12268,7 @@ i32.const -11 i32.const -6 call $~lib/string/String#substr - local.tee $131 + local.tee $132 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -11959,7 +12284,7 @@ i32.const 4 i32.const 3 call $~lib/string/String#substr - local.tee $132 + local.tee $133 i32.const 13040 call $~lib/string/String.__eq i32.eqz @@ -11975,7 +12300,7 @@ i32.const 0 i32.const -1 call $~lib/string/String#substr - local.tee $133 + local.tee $134 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -11991,7 +12316,7 @@ i32.const 0 i32.const 100 call $~lib/string/String#substr - local.tee $134 + local.tee $135 i32.const 12784 call $~lib/string/String.__eq i32.eqz @@ -12007,7 +12332,7 @@ i32.const 4 i32.const 4 call $~lib/string/String#substr - local.tee $135 + local.tee $136 i32.const 13072 call $~lib/string/String.__eq i32.eqz @@ -12023,7 +12348,7 @@ i32.const 4 i32.const -3 call $~lib/string/String#substr - local.tee $136 + local.tee $137 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -12039,7 +12364,7 @@ i32.const 0 i32.const 2147483647 call $~lib/string/String#substring - local.tee $137 + local.tee $138 i32.const 12784 call $~lib/string/String.__eq i32.eqz @@ -12055,7 +12380,7 @@ i32.const -1 i32.const 2147483647 call $~lib/string/String#substring - local.tee $138 + local.tee $139 i32.const 12784 call $~lib/string/String.__eq i32.eqz @@ -12071,7 +12396,7 @@ i32.const -5 i32.const 2147483647 call $~lib/string/String#substring - local.tee $139 + local.tee $140 i32.const 12784 call $~lib/string/String.__eq i32.eqz @@ -12087,7 +12412,7 @@ i32.const 2 i32.const 7 call $~lib/string/String#substring - local.tee $140 + local.tee $141 i32.const 12896 call $~lib/string/String.__eq i32.eqz @@ -12103,7 +12428,7 @@ i32.const -11 i32.const -6 call $~lib/string/String#substring - local.tee $141 + local.tee $142 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -12119,7 +12444,7 @@ i32.const 4 i32.const 3 call $~lib/string/String#substring - local.tee $142 + local.tee $143 i32.const 13104 call $~lib/string/String.__eq i32.eqz @@ -12135,7 +12460,7 @@ i32.const 0 i32.const -1 call $~lib/string/String#substring - local.tee $143 + local.tee $144 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -12151,7 +12476,7 @@ i32.const 0 i32.const 100 call $~lib/string/String#substring - local.tee $144 + local.tee $145 i32.const 12784 call $~lib/string/String.__eq i32.eqz @@ -12167,7 +12492,7 @@ i32.const 4 i32.const 4 call $~lib/string/String#substring - local.tee $145 + local.tee $146 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -12183,7 +12508,7 @@ i32.const 4 i32.const -3 call $~lib/string/String#substring - local.tee $146 + local.tee $147 i32.const 2256 call $~lib/string/String.__eq i32.eqz @@ -12210,11 +12535,11 @@ local.tee $0 i32.const 1280 call $~lib/string/String.__eq - local.set $9 + local.set $10 local.get $0 call $~lib/rt/pure/__release end - local.get $9 + local.get $10 i32.eqz if i32.const 0 @@ -12245,15 +12570,15 @@ i32.const 2064 i32.const 2147483647 call $~lib/string/String#split - local.set $9 + local.set $10 local.get $0 call $~lib/rt/pure/__release - local.get $9 + local.get $10 i32.load offset=12 i32.const 1 i32.eq if - local.get $9 + local.get $10 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12278,7 +12603,7 @@ i32.const 2147483647 call $~lib/string/String#split local.set $1 - local.get $9 + local.get $10 call $~lib/rt/pure/__release local.get $1 i32.load offset=12 @@ -12291,11 +12616,11 @@ local.tee $0 i32.const 13360 call $~lib/string/String.__eq - local.set $5 + local.set $6 local.get $0 call $~lib/rt/pure/__release end - local.get $5 + local.get $6 i32.eqz if i32.const 0 @@ -12309,15 +12634,15 @@ i32.const 2064 i32.const 2147483647 call $~lib/string/String#split - local.set $5 + local.set $6 local.get $1 call $~lib/rt/pure/__release - local.get $5 + local.get $6 i32.load offset=12 i32.const 3 i32.eq if - local.get $5 + local.get $6 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12329,7 +12654,7 @@ end local.get $14 if - local.get $5 + local.get $6 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12341,7 +12666,7 @@ end local.get $15 if - local.get $5 + local.get $6 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12366,7 +12691,7 @@ i32.const 2147483647 call $~lib/string/String#split local.set $1 - local.get $5 + local.get $6 call $~lib/rt/pure/__release local.get $1 i32.load offset=12 @@ -12403,11 +12728,11 @@ local.tee $0 i32.const 12240 call $~lib/string/String.__eq - local.set $3 + local.set $4 local.get $0 call $~lib/rt/pure/__release end - local.get $3 + local.get $4 i32.eqz if i32.const 0 @@ -12421,15 +12746,15 @@ i32.const 2064 i32.const 2147483647 call $~lib/string/String#split - local.set $3 + local.set $4 local.get $1 call $~lib/rt/pure/__release - local.get $3 + local.get $4 i32.load offset=12 i32.const 4 i32.eq if - local.get $3 + local.get $4 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12441,7 +12766,7 @@ end local.get $19 if - local.get $3 + local.get $4 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12453,7 +12778,7 @@ end local.get $20 if - local.get $3 + local.get $4 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12465,7 +12790,7 @@ end local.get $21 if - local.get $3 + local.get $4 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12490,7 +12815,7 @@ i32.const 2147483647 call $~lib/string/String#split local.set $1 - local.get $3 + local.get $4 call $~lib/rt/pure/__release local.get $1 i32.load offset=12 @@ -12539,11 +12864,11 @@ local.tee $0 i32.const 12240 call $~lib/string/String.__eq - local.set $4 + local.set $5 local.get $0 call $~lib/rt/pure/__release end - local.get $4 + local.get $5 i32.eqz if i32.const 0 @@ -12557,15 +12882,15 @@ i32.const 2064 i32.const 2147483647 call $~lib/string/String#split - local.set $4 + local.set $5 local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $5 i32.load offset=12 i32.const 4 i32.eq if - local.get $4 + local.get $5 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12577,7 +12902,7 @@ end local.get $26 if - local.get $4 + local.get $5 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12589,7 +12914,7 @@ end local.get $27 if - local.get $4 + local.get $5 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12601,7 +12926,7 @@ end local.get $28 if - local.get $4 + local.get $5 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12626,7 +12951,7 @@ i32.const 2147483647 call $~lib/string/String#split local.set $1 - local.get $4 + local.get $5 call $~lib/rt/pure/__release local.get $1 i32.load offset=12 @@ -12663,11 +12988,11 @@ local.tee $0 i32.const 12240 call $~lib/string/String.__eq - local.set $10 + local.set $11 local.get $0 call $~lib/rt/pure/__release end - local.get $10 + local.get $11 i32.eqz if i32.const 0 @@ -12698,15 +13023,15 @@ i32.const 1280 i32.const 1 call $~lib/string/String#split - local.set $10 + local.set $11 local.get $0 call $~lib/rt/pure/__release - local.get $10 + local.get $11 i32.load offset=12 i32.const 1 i32.eq if - local.get $10 + local.get $11 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12731,7 +13056,7 @@ i32.const 1 call $~lib/string/String#split local.set $1 - local.get $10 + local.get $11 call $~lib/rt/pure/__release local.get $1 i32.load offset=12 @@ -12744,11 +13069,11 @@ local.tee $0 i32.const 1328 call $~lib/string/String.__eq - local.set $6 + local.set $7 local.get $0 call $~lib/rt/pure/__release end - local.get $6 + local.get $7 i32.eqz if i32.const 0 @@ -12762,15 +13087,15 @@ i32.const 1280 i32.const 4 call $~lib/string/String#split - local.set $6 + local.set $7 local.get $1 call $~lib/rt/pure/__release - local.get $6 + local.get $7 i32.load offset=12 i32.const 3 i32.eq if - local.get $6 + local.get $7 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12782,7 +13107,7 @@ end local.get $33 if - local.get $6 + local.get $7 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12794,17 +13119,17 @@ end local.get $34 if - local.get $6 + local.get $7 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 i32.const 12240 call $~lib/string/String.__eq - local.set $7 + local.set $8 local.get $0 call $~lib/rt/pure/__release end - local.get $7 + local.get $8 i32.eqz if i32.const 0 @@ -12818,15 +13143,15 @@ i32.const 1280 i32.const -1 call $~lib/string/String#split - local.set $7 - local.get $6 - call $~lib/rt/pure/__release + local.set $8 local.get $7 + call $~lib/rt/pure/__release + local.get $8 i32.load offset=12 i32.const 3 i32.eq if - local.get $7 + local.get $8 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12838,7 +13163,7 @@ end local.get $35 if - local.get $7 + local.get $8 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12850,7 +13175,7 @@ end local.get $36 if - local.get $7 + local.get $8 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 @@ -12875,7 +13200,7 @@ i32.const -1 call $~lib/string/String#split local.set $1 - local.get $7 + local.get $8 call $~lib/rt/pure/__release local.get $1 i32.load offset=12 @@ -12931,7 +13256,7 @@ i32.const 0 i32.const 10 call $~lib/util/number/itoa32 - local.tee $147 + local.tee $148 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -12946,7 +13271,7 @@ i32.const 1 i32.const 10 call $~lib/util/number/itoa32 - local.tee $148 + local.tee $149 i32.const 2496 call $~lib/string/String.__eq i32.eqz @@ -12961,7 +13286,7 @@ i32.const 8 i32.const 10 call $~lib/util/number/itoa32 - local.tee $149 + local.tee $150 i32.const 13840 call $~lib/string/String.__eq i32.eqz @@ -12976,7 +13301,7 @@ i32.const 12 i32.const 10 call $~lib/util/number/itoa32 - local.tee $150 + local.tee $151 i32.const 13872 call $~lib/string/String.__eq i32.eqz @@ -12991,7 +13316,7 @@ i32.const 123 i32.const 10 call $~lib/util/number/itoa32 - local.tee $151 + local.tee $152 i32.const 1872 call $~lib/string/String.__eq i32.eqz @@ -13006,7 +13331,7 @@ i32.const -1000 i32.const 10 call $~lib/util/number/itoa32 - local.tee $152 + local.tee $153 i32.const 13904 call $~lib/string/String.__eq i32.eqz @@ -13021,7 +13346,7 @@ i32.const 1234 i32.const 10 call $~lib/util/number/itoa32 - local.tee $153 + local.tee $154 i32.const 13936 call $~lib/string/String.__eq i32.eqz @@ -13036,7 +13361,7 @@ i32.const 12345 i32.const 10 call $~lib/util/number/itoa32 - local.tee $154 + local.tee $155 i32.const 13968 call $~lib/string/String.__eq i32.eqz @@ -13051,7 +13376,7 @@ i32.const 123456 i32.const 10 call $~lib/util/number/itoa32 - local.tee $155 + local.tee $156 i32.const 14000 call $~lib/string/String.__eq i32.eqz @@ -13066,7 +13391,7 @@ i32.const 1111111 i32.const 10 call $~lib/util/number/itoa32 - local.tee $156 + local.tee $157 i32.const 14032 call $~lib/string/String.__eq i32.eqz @@ -13081,7 +13406,7 @@ i32.const 1234567 i32.const 10 call $~lib/util/number/itoa32 - local.tee $157 + local.tee $158 i32.const 14064 call $~lib/string/String.__eq i32.eqz @@ -13096,7 +13421,7 @@ i32.const 12345678 i32.const 10 call $~lib/util/number/itoa32 - local.tee $158 + local.tee $159 i32.const 14096 call $~lib/string/String.__eq i32.eqz @@ -13111,7 +13436,7 @@ i32.const 123456789 i32.const 10 call $~lib/util/number/itoa32 - local.tee $159 + local.tee $160 i32.const 14128 call $~lib/string/String.__eq i32.eqz @@ -13126,7 +13451,7 @@ i32.const 2147483646 i32.const 10 call $~lib/util/number/itoa32 - local.tee $160 + local.tee $161 i32.const 14176 call $~lib/string/String.__eq i32.eqz @@ -13141,7 +13466,7 @@ i32.const 2147483647 i32.const 10 call $~lib/util/number/itoa32 - local.tee $161 + local.tee $162 i32.const 14224 call $~lib/string/String.__eq i32.eqz @@ -13156,7 +13481,7 @@ i32.const -2147483648 i32.const 10 call $~lib/util/number/itoa32 - local.tee $162 + local.tee $163 i32.const 14272 call $~lib/string/String.__eq i32.eqz @@ -13171,7 +13496,7 @@ i32.const -1 i32.const 10 call $~lib/util/number/itoa32 - local.tee $163 + local.tee $164 i32.const 14320 call $~lib/string/String.__eq i32.eqz @@ -13186,7 +13511,7 @@ i32.const 0 i32.const 10 call $~lib/util/number/utoa32 - local.tee $164 + local.tee $165 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -13201,7 +13526,7 @@ i32.const 1000 i32.const 10 call $~lib/util/number/utoa32 - local.tee $165 + local.tee $166 i32.const 14352 call $~lib/string/String.__eq i32.eqz @@ -13216,7 +13541,7 @@ i32.const 2147483647 i32.const 10 call $~lib/util/number/utoa32 - local.tee $166 + local.tee $167 i32.const 14224 call $~lib/string/String.__eq i32.eqz @@ -13231,7 +13556,7 @@ i32.const -2147483648 i32.const 10 call $~lib/util/number/utoa32 - local.tee $167 + local.tee $168 i32.const 14384 call $~lib/string/String.__eq i32.eqz @@ -13246,7 +13571,7 @@ i32.const -1 i32.const 10 call $~lib/util/number/utoa32 - local.tee $168 + local.tee $169 i32.const 14432 call $~lib/string/String.__eq i32.eqz @@ -13261,7 +13586,7 @@ i32.const 0 i32.const 16 call $~lib/util/number/utoa32 - local.tee $169 + local.tee $170 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -13276,7 +13601,7 @@ i32.const 1 i32.const 16 call $~lib/util/number/utoa32 - local.tee $170 + local.tee $171 i32.const 2496 call $~lib/string/String.__eq i32.eqz @@ -13291,7 +13616,7 @@ i32.const 8 i32.const 16 call $~lib/util/number/utoa32 - local.tee $171 + local.tee $172 i32.const 13840 call $~lib/string/String.__eq i32.eqz @@ -13306,7 +13631,7 @@ i32.const 12 i32.const 16 call $~lib/util/number/utoa32 - local.tee $172 + local.tee $173 i32.const 12240 call $~lib/string/String.__eq i32.eqz @@ -13321,7 +13646,7 @@ i32.const 123 i32.const 16 call $~lib/util/number/utoa32 - local.tee $173 + local.tee $174 i32.const 14480 call $~lib/string/String.__eq i32.eqz @@ -13336,7 +13661,7 @@ i32.const 1234 i32.const 16 call $~lib/util/number/utoa32 - local.tee $174 + local.tee $175 i32.const 14512 call $~lib/string/String.__eq i32.eqz @@ -13351,7 +13676,7 @@ i32.const 12345 i32.const 16 call $~lib/util/number/utoa32 - local.tee $175 + local.tee $176 i32.const 14544 call $~lib/string/String.__eq i32.eqz @@ -13366,7 +13691,7 @@ i32.const 123456 i32.const 16 call $~lib/util/number/utoa32 - local.tee $176 + local.tee $177 i32.const 14576 call $~lib/string/String.__eq i32.eqz @@ -13381,7 +13706,7 @@ i32.const 1111111 i32.const 16 call $~lib/util/number/utoa32 - local.tee $177 + local.tee $178 i32.const 14608 call $~lib/string/String.__eq i32.eqz @@ -13396,7 +13721,7 @@ i32.const 1234567 i32.const 16 call $~lib/util/number/utoa32 - local.tee $178 + local.tee $179 i32.const 14640 call $~lib/string/String.__eq i32.eqz @@ -13411,7 +13736,7 @@ i32.const 12345678 i32.const 16 call $~lib/util/number/utoa32 - local.tee $179 + local.tee $180 i32.const 14672 call $~lib/string/String.__eq i32.eqz @@ -13426,7 +13751,7 @@ i32.const 123456789 i32.const 16 call $~lib/util/number/utoa32 - local.tee $180 + local.tee $181 i32.const 14704 call $~lib/string/String.__eq i32.eqz @@ -13441,7 +13766,7 @@ i32.const 2147483646 i32.const 16 call $~lib/util/number/utoa32 - local.tee $181 + local.tee $182 i32.const 14736 call $~lib/string/String.__eq i32.eqz @@ -13456,7 +13781,7 @@ i32.const 2147483647 i32.const 16 call $~lib/util/number/utoa32 - local.tee $182 + local.tee $183 i32.const 14768 call $~lib/string/String.__eq i32.eqz @@ -13471,7 +13796,7 @@ i32.const -2147483648 i32.const 16 call $~lib/util/number/utoa32 - local.tee $183 + local.tee $184 i32.const 14800 call $~lib/string/String.__eq i32.eqz @@ -13486,7 +13811,7 @@ i32.const -1 i32.const 16 call $~lib/util/number/utoa32 - local.tee $184 + local.tee $185 i32.const 14832 call $~lib/string/String.__eq i32.eqz @@ -13501,7 +13826,7 @@ i32.const 0 i32.const 16 call $~lib/util/number/itoa32 - local.tee $185 + local.tee $186 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -13516,7 +13841,7 @@ i32.const -4096 i32.const 16 call $~lib/util/number/itoa32 - local.tee $186 + local.tee $187 i32.const 13904 call $~lib/string/String.__eq i32.eqz @@ -13531,7 +13856,7 @@ i32.const 2147483647 i32.const 16 call $~lib/util/number/itoa32 - local.tee $187 + local.tee $188 i32.const 14768 call $~lib/string/String.__eq i32.eqz @@ -13546,7 +13871,7 @@ i32.const -2147483647 i32.const 16 call $~lib/util/number/itoa32 - local.tee $188 + local.tee $189 i32.const 14864 call $~lib/string/String.__eq i32.eqz @@ -13561,7 +13886,7 @@ i32.const -268435455 i32.const 16 call $~lib/util/number/itoa32 - local.tee $189 + local.tee $190 i32.const 14912 call $~lib/string/String.__eq i32.eqz @@ -13576,7 +13901,7 @@ i32.const -2147483648 i32.const 16 call $~lib/util/number/itoa32 - local.tee $190 + local.tee $191 i32.const 14944 call $~lib/string/String.__eq i32.eqz @@ -13591,7 +13916,7 @@ i32.const -2147483648 i32.const 16 call $~lib/util/number/itoa32 - local.tee $191 + local.tee $192 i32.const 14944 call $~lib/string/String.__eq i32.eqz @@ -13606,7 +13931,7 @@ i32.const 0 i32.const 2 call $~lib/util/number/utoa32 - local.tee $192 + local.tee $193 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -13621,7 +13946,7 @@ i32.const 1 i32.const 2 call $~lib/util/number/utoa32 - local.tee $193 + local.tee $194 i32.const 2496 call $~lib/string/String.__eq i32.eqz @@ -13636,7 +13961,7 @@ i32.const 3 i32.const 2 call $~lib/util/number/utoa32 - local.tee $194 + local.tee $195 i32.const 14992 call $~lib/string/String.__eq i32.eqz @@ -13651,7 +13976,7 @@ i32.const 7 i32.const 2 call $~lib/util/number/utoa32 - local.tee $195 + local.tee $196 i32.const 15024 call $~lib/string/String.__eq i32.eqz @@ -13666,7 +13991,7 @@ i32.const 14 i32.const 2 call $~lib/util/number/utoa32 - local.tee $196 + local.tee $197 i32.const 15056 call $~lib/string/String.__eq i32.eqz @@ -13681,7 +14006,7 @@ i32.const 29 i32.const 2 call $~lib/util/number/utoa32 - local.tee $197 + local.tee $198 i32.const 15088 call $~lib/string/String.__eq i32.eqz @@ -13696,7 +14021,7 @@ i32.const 59 i32.const 2 call $~lib/util/number/utoa32 - local.tee $198 + local.tee $199 i32.const 15120 call $~lib/string/String.__eq i32.eqz @@ -13711,7 +14036,7 @@ i32.const 4095 i32.const 2 call $~lib/util/number/utoa32 - local.tee $199 + local.tee $200 i32.const 15152 call $~lib/string/String.__eq i32.eqz @@ -13726,7 +14051,7 @@ i32.const 33554431 i32.const 2 call $~lib/util/number/utoa32 - local.tee $200 + local.tee $201 i32.const 15200 call $~lib/string/String.__eq i32.eqz @@ -13741,7 +14066,7 @@ i32.const -12 i32.const 2 call $~lib/util/number/utoa32 - local.tee $201 + local.tee $202 i32.const 15280 call $~lib/string/String.__eq i32.eqz @@ -13756,7 +14081,7 @@ i32.const -4 i32.const 2 call $~lib/util/number/utoa32 - local.tee $202 + local.tee $203 i32.const 15360 call $~lib/string/String.__eq i32.eqz @@ -13771,7 +14096,7 @@ i32.const -2 i32.const 2 call $~lib/util/number/utoa32 - local.tee $203 + local.tee $204 i32.const 15440 call $~lib/string/String.__eq i32.eqz @@ -13786,7 +14111,7 @@ i32.const -1 i32.const 2 call $~lib/util/number/utoa32 - local.tee $204 + local.tee $205 i32.const 15520 call $~lib/string/String.__eq i32.eqz @@ -13801,7 +14126,7 @@ i32.const -2047 i32.const 2 call $~lib/util/number/itoa32 - local.tee $205 + local.tee $206 i32.const 15600 call $~lib/string/String.__eq i32.eqz @@ -13816,7 +14141,7 @@ i32.const -1 i32.const 3 call $~lib/util/number/utoa32 - local.tee $206 + local.tee $207 i32.const 15648 call $~lib/string/String.__eq i32.eqz @@ -13831,7 +14156,7 @@ i32.const -1 i32.const 4 call $~lib/util/number/utoa32 - local.tee $207 + local.tee $208 i32.const 15712 call $~lib/string/String.__eq i32.eqz @@ -13846,7 +14171,7 @@ i32.const -1 i32.const 5 call $~lib/util/number/utoa32 - local.tee $208 + local.tee $209 i32.const 15760 call $~lib/string/String.__eq i32.eqz @@ -13861,7 +14186,7 @@ i32.const -1 i32.const 8 call $~lib/util/number/utoa32 - local.tee $209 + local.tee $210 i32.const 15808 call $~lib/string/String.__eq i32.eqz @@ -13876,7 +14201,7 @@ i32.const -1 i32.const 11 call $~lib/util/number/utoa32 - local.tee $210 + local.tee $211 i32.const 15856 call $~lib/string/String.__eq i32.eqz @@ -13891,7 +14216,7 @@ i32.const -1 i32.const 15 call $~lib/util/number/utoa32 - local.tee $211 + local.tee $212 i32.const 15904 call $~lib/string/String.__eq i32.eqz @@ -13906,7 +14231,7 @@ i32.const -1 i32.const 17 call $~lib/util/number/utoa32 - local.tee $212 + local.tee $213 i32.const 15952 call $~lib/string/String.__eq i32.eqz @@ -13921,7 +14246,7 @@ i32.const -1 i32.const 21 call $~lib/util/number/utoa32 - local.tee $213 + local.tee $214 i32.const 15984 call $~lib/string/String.__eq i32.eqz @@ -13936,7 +14261,7 @@ i32.const -1 i32.const 27 call $~lib/util/number/utoa32 - local.tee $214 + local.tee $215 i32.const 16016 call $~lib/string/String.__eq i32.eqz @@ -13951,7 +14276,7 @@ i32.const -1 i32.const 32 call $~lib/util/number/utoa32 - local.tee $215 + local.tee $216 i32.const 16048 call $~lib/string/String.__eq i32.eqz @@ -13966,7 +14291,7 @@ i32.const -1 i32.const 36 call $~lib/util/number/utoa32 - local.tee $216 + local.tee $217 i32.const 16080 call $~lib/string/String.__eq i32.eqz @@ -13981,7 +14306,7 @@ i64.const 0 i32.const 10 call $~lib/util/number/utoa64 - local.tee $217 + local.tee $218 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -13996,7 +14321,7 @@ i64.const 12 i32.const 10 call $~lib/util/number/utoa64 - local.tee $218 + local.tee $219 i32.const 13872 call $~lib/string/String.__eq i32.eqz @@ -14011,7 +14336,7 @@ i64.const 123 i32.const 10 call $~lib/util/number/utoa64 - local.tee $219 + local.tee $220 i32.const 1872 call $~lib/string/String.__eq i32.eqz @@ -14026,7 +14351,7 @@ i64.const 1234 i32.const 10 call $~lib/util/number/utoa64 - local.tee $220 + local.tee $221 i32.const 13936 call $~lib/string/String.__eq i32.eqz @@ -14041,7 +14366,7 @@ i64.const 12345 i32.const 10 call $~lib/util/number/utoa64 - local.tee $221 + local.tee $222 i32.const 13968 call $~lib/string/String.__eq i32.eqz @@ -14056,7 +14381,7 @@ i64.const 123456 i32.const 10 call $~lib/util/number/utoa64 - local.tee $222 + local.tee $223 i32.const 14000 call $~lib/string/String.__eq i32.eqz @@ -14071,7 +14396,7 @@ i64.const 1234567 i32.const 10 call $~lib/util/number/utoa64 - local.tee $223 + local.tee $224 i32.const 14064 call $~lib/string/String.__eq i32.eqz @@ -14086,7 +14411,7 @@ i64.const 99999999 i32.const 10 call $~lib/util/number/utoa64 - local.tee $224 + local.tee $225 i32.const 16112 call $~lib/string/String.__eq i32.eqz @@ -14101,7 +14426,7 @@ i64.const 100000000 i32.const 10 call $~lib/util/number/utoa64 - local.tee $225 + local.tee $226 i32.const 16144 call $~lib/string/String.__eq i32.eqz @@ -14116,7 +14441,7 @@ i64.const 4294967295 i32.const 10 call $~lib/util/number/utoa64 - local.tee $226 + local.tee $227 i32.const 14432 call $~lib/string/String.__eq i32.eqz @@ -14131,7 +14456,7 @@ i64.const 4294967297 i32.const 10 call $~lib/util/number/utoa64 - local.tee $227 + local.tee $228 i32.const 16192 call $~lib/string/String.__eq i32.eqz @@ -14146,7 +14471,7 @@ i64.const 68719476735 i32.const 10 call $~lib/util/number/utoa64 - local.tee $228 + local.tee $229 i32.const 16240 call $~lib/string/String.__eq i32.eqz @@ -14161,7 +14486,7 @@ i64.const 868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.tee $229 + local.tee $230 i32.const 16288 call $~lib/string/String.__eq i32.eqz @@ -14176,7 +14501,7 @@ i64.const 8687194767350 i32.const 10 call $~lib/util/number/utoa64 - local.tee $230 + local.tee $231 i32.const 16336 call $~lib/string/String.__eq i32.eqz @@ -14191,7 +14516,7 @@ i64.const 86871947673501 i32.const 10 call $~lib/util/number/utoa64 - local.tee $231 + local.tee $232 i32.const 16384 call $~lib/string/String.__eq i32.eqz @@ -14206,7 +14531,7 @@ i64.const 999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.tee $232 + local.tee $233 i32.const 16432 call $~lib/string/String.__eq i32.eqz @@ -14221,7 +14546,7 @@ i64.const 9999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.tee $233 + local.tee $234 i32.const 16480 call $~lib/string/String.__eq i32.eqz @@ -14236,7 +14561,7 @@ i64.const 19999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.tee $234 + local.tee $235 i32.const 16528 call $~lib/string/String.__eq i32.eqz @@ -14251,7 +14576,7 @@ i64.const 129999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.tee $235 + local.tee $236 i32.const 16592 call $~lib/string/String.__eq i32.eqz @@ -14266,7 +14591,7 @@ i64.const 1239999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.tee $236 + local.tee $237 i32.const 16656 call $~lib/string/String.__eq i32.eqz @@ -14281,7 +14606,7 @@ i64.const -1 i32.const 10 call $~lib/util/number/utoa64 - local.tee $237 + local.tee $238 i32.const 16720 call $~lib/string/String.__eq i32.eqz @@ -14296,7 +14621,7 @@ i64.const 0 i32.const 10 call $~lib/util/number/itoa64 - local.tee $238 + local.tee $239 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -14311,7 +14636,7 @@ i64.const -1234 i32.const 10 call $~lib/util/number/itoa64 - local.tee $239 + local.tee $240 i32.const 16784 call $~lib/string/String.__eq i32.eqz @@ -14326,7 +14651,7 @@ i64.const 4294967295 i32.const 10 call $~lib/util/number/itoa64 - local.tee $240 + local.tee $241 i32.const 14432 call $~lib/string/String.__eq i32.eqz @@ -14341,7 +14666,7 @@ i64.const 4294967297 i32.const 10 call $~lib/util/number/itoa64 - local.tee $241 + local.tee $242 i32.const 16192 call $~lib/string/String.__eq i32.eqz @@ -14356,7 +14681,7 @@ i64.const -4294967295 i32.const 10 call $~lib/util/number/itoa64 - local.tee $242 + local.tee $243 i32.const 16816 call $~lib/string/String.__eq i32.eqz @@ -14371,7 +14696,7 @@ i64.const 68719476735 i32.const 10 call $~lib/util/number/itoa64 - local.tee $243 + local.tee $244 i32.const 16240 call $~lib/string/String.__eq i32.eqz @@ -14386,7 +14711,7 @@ i64.const -68719476735 i32.const 10 call $~lib/util/number/itoa64 - local.tee $244 + local.tee $245 i32.const 16864 call $~lib/string/String.__eq i32.eqz @@ -14401,7 +14726,7 @@ i64.const -868719476735 i32.const 10 call $~lib/util/number/itoa64 - local.tee $245 + local.tee $246 i32.const 16912 call $~lib/string/String.__eq i32.eqz @@ -14416,7 +14741,7 @@ i64.const -999868719476735 i32.const 10 call $~lib/util/number/itoa64 - local.tee $246 + local.tee $247 i32.const 16960 call $~lib/string/String.__eq i32.eqz @@ -14431,7 +14756,7 @@ i64.const -19999868719476735 i32.const 10 call $~lib/util/number/itoa64 - local.tee $247 + local.tee $248 i32.const 17008 call $~lib/string/String.__eq i32.eqz @@ -14446,7 +14771,7 @@ i64.const 9223372036854775807 i32.const 10 call $~lib/util/number/itoa64 - local.tee $248 + local.tee $249 i32.const 17072 call $~lib/string/String.__eq i32.eqz @@ -14461,7 +14786,7 @@ i64.const -9223372036854775808 i32.const 10 call $~lib/util/number/itoa64 - local.tee $249 + local.tee $250 i32.const 17136 call $~lib/string/String.__eq i32.eqz @@ -14476,7 +14801,7 @@ i64.const 0 i32.const 16 call $~lib/util/number/utoa64 - local.tee $250 + local.tee $251 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -14491,7 +14816,7 @@ i64.const 1 i32.const 16 call $~lib/util/number/utoa64 - local.tee $251 + local.tee $252 i32.const 2496 call $~lib/string/String.__eq i32.eqz @@ -14506,7 +14831,7 @@ i64.const 12 i32.const 16 call $~lib/util/number/utoa64 - local.tee $252 + local.tee $253 i32.const 12240 call $~lib/string/String.__eq i32.eqz @@ -14521,7 +14846,7 @@ i64.const 1234 i32.const 16 call $~lib/util/number/utoa64 - local.tee $253 + local.tee $254 i32.const 14512 call $~lib/string/String.__eq i32.eqz @@ -14536,7 +14861,7 @@ i64.const 1111111 i32.const 16 call $~lib/util/number/utoa64 - local.tee $254 + local.tee $255 i32.const 14608 call $~lib/string/String.__eq i32.eqz @@ -14551,7 +14876,7 @@ i64.const 8589934591 i32.const 16 call $~lib/util/number/utoa64 - local.tee $255 + local.tee $256 i32.const 17200 call $~lib/string/String.__eq i32.eqz @@ -14566,7 +14891,7 @@ i64.const 5942249508321 i32.const 16 call $~lib/util/number/utoa64 - local.tee $256 + local.tee $257 i32.const 17248 call $~lib/string/String.__eq i32.eqz @@ -14581,7 +14906,7 @@ i64.const 76310993685985 i32.const 16 call $~lib/util/number/utoa64 - local.tee $257 + local.tee $258 i32.const 17296 call $~lib/string/String.__eq i32.eqz @@ -14596,7 +14921,7 @@ i64.const 920735923817967 i32.const 16 call $~lib/util/number/utoa64 - local.tee $258 + local.tee $259 i32.const 17344 call $~lib/string/String.__eq i32.eqz @@ -14611,7 +14936,7 @@ i64.const 9927935178558959 i32.const 16 call $~lib/util/number/utoa64 - local.tee $259 + local.tee $260 i32.const 17392 call $~lib/string/String.__eq i32.eqz @@ -14626,7 +14951,7 @@ i64.const 81985529216486895 i32.const 16 call $~lib/util/number/utoa64 - local.tee $260 + local.tee $261 i32.const 17440 call $~lib/string/String.__eq i32.eqz @@ -14641,7 +14966,7 @@ i64.const 1311768467463790320 i32.const 16 call $~lib/util/number/utoa64 - local.tee $261 + local.tee $262 i32.const 17488 call $~lib/string/String.__eq i32.eqz @@ -14656,7 +14981,7 @@ i64.const 9223372036854775807 i32.const 16 call $~lib/util/number/utoa64 - local.tee $262 + local.tee $263 i32.const 17536 call $~lib/string/String.__eq i32.eqz @@ -14671,7 +14996,7 @@ i64.const -1 i32.const 16 call $~lib/util/number/utoa64 - local.tee $263 + local.tee $264 i32.const 17584 call $~lib/string/String.__eq i32.eqz @@ -14686,7 +15011,7 @@ i64.const -9223372036854775807 i32.const 16 call $~lib/util/number/itoa64 - local.tee $264 + local.tee $265 i32.const 17632 call $~lib/string/String.__eq i32.eqz @@ -14701,7 +15026,7 @@ i64.const -9223372036854775808 i32.const 16 call $~lib/util/number/itoa64 - local.tee $265 + local.tee $266 i32.const 17696 call $~lib/string/String.__eq i32.eqz @@ -14716,7 +15041,7 @@ i64.const -9223372036854775808 i32.const 16 call $~lib/util/number/itoa64 - local.tee $266 + local.tee $267 i32.const 17696 call $~lib/string/String.__eq i32.eqz @@ -14731,7 +15056,7 @@ i64.const 0 i32.const 2 call $~lib/util/number/utoa64 - local.tee $267 + local.tee $268 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -14746,7 +15071,7 @@ i64.const 1 i32.const 2 call $~lib/util/number/utoa64 - local.tee $268 + local.tee $269 i32.const 2496 call $~lib/string/String.__eq i32.eqz @@ -14761,7 +15086,7 @@ i64.const 7 i32.const 2 call $~lib/util/number/utoa64 - local.tee $269 + local.tee $270 i32.const 15024 call $~lib/string/String.__eq i32.eqz @@ -14776,7 +15101,7 @@ i64.const 14 i32.const 2 call $~lib/util/number/utoa64 - local.tee $270 + local.tee $271 i32.const 15056 call $~lib/string/String.__eq i32.eqz @@ -14791,7 +15116,7 @@ i64.const 59 i32.const 2 call $~lib/util/number/utoa64 - local.tee $271 + local.tee $272 i32.const 15120 call $~lib/string/String.__eq i32.eqz @@ -14806,7 +15131,7 @@ i64.const 4095 i32.const 2 call $~lib/util/number/utoa64 - local.tee $272 + local.tee $273 i32.const 15152 call $~lib/string/String.__eq i32.eqz @@ -14821,7 +15146,7 @@ i64.const 4294967295 i32.const 2 call $~lib/util/number/utoa64 - local.tee $273 + local.tee $274 i32.const 15520 call $~lib/string/String.__eq i32.eqz @@ -14836,7 +15161,7 @@ i64.const 562949953421311 i32.const 2 call $~lib/util/number/utoa64 - local.tee $274 + local.tee $275 i32.const 17760 call $~lib/string/String.__eq i32.eqz @@ -14851,7 +15176,7 @@ i64.const -1 i32.const 2 call $~lib/util/number/utoa64 - local.tee $275 + local.tee $276 i32.const 17888 call $~lib/string/String.__eq i32.eqz @@ -14866,7 +15191,7 @@ i64.const -8589934591 i32.const 2 call $~lib/util/number/itoa64 - local.tee $276 + local.tee $277 i32.const 18032 call $~lib/string/String.__eq i32.eqz @@ -14881,7 +15206,7 @@ i64.const -1 i32.const 3 call $~lib/util/number/utoa64 - local.tee $277 + local.tee $278 i32.const 18128 call $~lib/string/String.__eq i32.eqz @@ -14896,7 +15221,7 @@ i64.const -1 i32.const 4 call $~lib/util/number/utoa64 - local.tee $278 + local.tee $279 i32.const 18240 call $~lib/string/String.__eq i32.eqz @@ -14911,7 +15236,7 @@ i64.const -1 i32.const 5 call $~lib/util/number/utoa64 - local.tee $279 + local.tee $280 i32.const 18320 call $~lib/string/String.__eq i32.eqz @@ -14926,7 +15251,7 @@ i64.const -1 i32.const 8 call $~lib/util/number/utoa64 - local.tee $280 + local.tee $281 i32.const 18400 call $~lib/string/String.__eq i32.eqz @@ -14941,7 +15266,7 @@ i64.const -1 i32.const 11 call $~lib/util/number/utoa64 - local.tee $281 + local.tee $282 i32.const 18464 call $~lib/string/String.__eq i32.eqz @@ -14956,7 +15281,7 @@ i64.const -1 i32.const 15 call $~lib/util/number/utoa64 - local.tee $282 + local.tee $283 i32.const 18528 call $~lib/string/String.__eq i32.eqz @@ -14971,7 +15296,7 @@ i64.const -1 i32.const 17 call $~lib/util/number/utoa64 - local.tee $283 + local.tee $284 i32.const 18592 call $~lib/string/String.__eq i32.eqz @@ -14986,7 +15311,7 @@ i64.const -1 i32.const 21 call $~lib/util/number/utoa64 - local.tee $284 + local.tee $285 i32.const 18640 call $~lib/string/String.__eq i32.eqz @@ -15001,7 +15326,7 @@ i64.const -1 i32.const 27 call $~lib/util/number/utoa64 - local.tee $285 + local.tee $286 i32.const 18688 call $~lib/string/String.__eq i32.eqz @@ -15016,7 +15341,7 @@ i64.const -1 i32.const 32 call $~lib/util/number/utoa64 - local.tee $286 + local.tee $287 i32.const 18736 call $~lib/string/String.__eq i32.eqz @@ -15031,7 +15356,7 @@ i64.const -1 i32.const 36 call $~lib/util/number/utoa64 - local.tee $287 + local.tee $288 i32.const 18784 call $~lib/string/String.__eq i32.eqz @@ -15045,7 +15370,7 @@ end f64.const 0 call $~lib/util/number/dtoa - local.tee $288 + local.tee $289 i32.const 18832 call $~lib/string/String.__eq i32.eqz @@ -15059,7 +15384,7 @@ end f64.const -0 call $~lib/util/number/dtoa - local.tee $289 + local.tee $290 i32.const 18832 call $~lib/string/String.__eq i32.eqz @@ -15073,7 +15398,7 @@ end f64.const nan:0x8000000000000 call $~lib/util/number/dtoa - local.tee $290 + local.tee $291 i32.const 5808 call $~lib/string/String.__eq i32.eqz @@ -15087,7 +15412,7 @@ end f64.const inf call $~lib/util/number/dtoa - local.tee $291 + local.tee $292 i32.const 18864 call $~lib/string/String.__eq i32.eqz @@ -15101,7 +15426,7 @@ end f64.const -inf call $~lib/util/number/dtoa - local.tee $292 + local.tee $293 i32.const 7024 call $~lib/string/String.__eq i32.eqz @@ -15115,7 +15440,7 @@ end f64.const 2.220446049250313e-16 call $~lib/util/number/dtoa - local.tee $293 + local.tee $294 i32.const 6320 call $~lib/string/String.__eq i32.eqz @@ -15129,7 +15454,7 @@ end f64.const -2.220446049250313e-16 call $~lib/util/number/dtoa - local.tee $294 + local.tee $295 i32.const 19808 call $~lib/string/String.__eq i32.eqz @@ -15143,7 +15468,7 @@ end f64.const 1797693134862315708145274e284 call $~lib/util/number/dtoa - local.tee $295 + local.tee $296 i32.const 6384 call $~lib/string/String.__eq i32.eqz @@ -15157,7 +15482,7 @@ end f64.const -1797693134862315708145274e284 call $~lib/util/number/dtoa - local.tee $296 + local.tee $297 i32.const 19872 call $~lib/string/String.__eq i32.eqz @@ -15171,7 +15496,7 @@ end f64.const 4185580496821356722454785e274 call $~lib/util/number/dtoa - local.tee $297 + local.tee $298 i32.const 19936 call $~lib/string/String.__eq i32.eqz @@ -15199,7 +15524,7 @@ end f64.const 4.940656e-318 call $~lib/util/number/dtoa - local.tee $11 + local.tee $3 i32.const 20064 call $~lib/string/String.__eq i32.eqz @@ -15213,7 +15538,7 @@ end f64.const 9060801153433600 call $~lib/util/number/dtoa - local.tee $8 + local.tee $9 i32.const 20112 call $~lib/string/String.__eq i32.eqz @@ -15227,7 +15552,7 @@ end f64.const 4708356024711512064 call $~lib/util/number/dtoa - local.tee $9 + local.tee $10 i32.const 20176 call $~lib/string/String.__eq i32.eqz @@ -15255,7 +15580,7 @@ end f64.const 5e-324 call $~lib/util/number/dtoa - local.tee $5 + local.tee $6 i32.const 6448 call $~lib/string/String.__eq i32.eqz @@ -15339,7 +15664,7 @@ end f64.const 1e-06 call $~lib/util/number/dtoa - local.tee $3 + local.tee $4 i32.const 20448 call $~lib/string/String.__eq i32.eqz @@ -15451,7 +15776,7 @@ end f64.const -inf call $~lib/util/number/dtoa - local.tee $4 + local.tee $5 i32.const 7024 call $~lib/string/String.__eq i32.eqz @@ -15549,7 +15874,7 @@ end f64.const 1.2312145673456234e-08 call $~lib/util/number/dtoa - local.tee $10 + local.tee $11 i32.const 20864 call $~lib/string/String.__eq i32.eqz @@ -15577,7 +15902,7 @@ end f64.const 0.9999999999999999 call $~lib/util/number/dtoa - local.tee $6 + local.tee $7 i32.const 20992 call $~lib/string/String.__eq i32.eqz @@ -15619,7 +15944,7 @@ end f64.const 0.3333333333333333 call $~lib/util/number/dtoa - local.tee $7 + local.tee $8 i32.const 21088 call $~lib/string/String.__eq i32.eqz @@ -15809,25 +16134,23 @@ call $~lib/rt/pure/__release local.get $72 call $~lib/rt/pure/__release - local.get $73 - call $~lib/rt/pure/__release local.get $74 call $~lib/rt/pure/__release local.get $75 call $~lib/rt/pure/__release local.get $76 call $~lib/rt/pure/__release - local.get $80 + local.get $77 call $~lib/rt/pure/__release local.get $81 call $~lib/rt/pure/__release - local.get $79 + local.get $82 call $~lib/rt/pure/__release - local.get $78 + local.get $80 call $~lib/rt/pure/__release - local.get $77 + local.get $79 call $~lib/rt/pure/__release - local.get $82 + local.get $78 call $~lib/rt/pure/__release local.get $83 call $~lib/rt/pure/__release @@ -15959,12 +16282,12 @@ call $~lib/rt/pure/__release local.get $147 call $~lib/rt/pure/__release - local.get $149 - call $~lib/rt/pure/__release local.get $148 call $~lib/rt/pure/__release local.get $150 call $~lib/rt/pure/__release + local.get $149 + call $~lib/rt/pure/__release local.get $151 call $~lib/rt/pure/__release local.get $152 @@ -16259,17 +16582,19 @@ call $~lib/rt/pure/__release local.get $297 call $~lib/rt/pure/__release - local.get $12 + local.get $298 call $~lib/rt/pure/__release - local.get $11 + local.get $12 call $~lib/rt/pure/__release - local.get $8 + local.get $3 call $~lib/rt/pure/__release local.get $9 call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release local.get $13 call $~lib/rt/pure/__release - local.get $5 + local.get $6 call $~lib/rt/pure/__release local.get $14 call $~lib/rt/pure/__release @@ -16281,7 +16606,7 @@ call $~lib/rt/pure/__release local.get $18 call $~lib/rt/pure/__release - local.get $3 + local.get $4 call $~lib/rt/pure/__release local.get $19 call $~lib/rt/pure/__release @@ -16297,7 +16622,7 @@ call $~lib/rt/pure/__release local.get $25 call $~lib/rt/pure/__release - local.get $4 + local.get $5 call $~lib/rt/pure/__release local.get $26 call $~lib/rt/pure/__release @@ -16311,17 +16636,17 @@ call $~lib/rt/pure/__release local.get $31 call $~lib/rt/pure/__release - local.get $10 + local.get $11 call $~lib/rt/pure/__release local.get $32 call $~lib/rt/pure/__release - local.get $6 + local.get $7 call $~lib/rt/pure/__release local.get $33 call $~lib/rt/pure/__release local.get $34 call $~lib/rt/pure/__release - local.get $7 + local.get $8 call $~lib/rt/pure/__release local.get $35 call $~lib/rt/pure/__release diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 16c8bba764..cf419ee73f 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -1,11 +1,11 @@ (module + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_none (func)) - (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_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i64_i32_i32_=>_i32 (func (param i64 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $f32_i32_i32_=>_i32 (func (param f32 i32 i32) (result i32))) @@ -2151,17 +2151,18 @@ (local $3 i32) (local $4 i32) local.get $0 - local.tee $3 + call $~lib/rt/pure/__retain + local.tee $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $4 + 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 $0 i32.const 0 @@ -2171,9 +2172,9 @@ 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 @@ -2183,7 +2184,7 @@ i32.lt_s if (result i32) local.get $2 - local.get $4 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -2193,9 +2194,9 @@ 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 @@ -2204,12 +2205,12 @@ i32.const 8 call $~lib/rt/tlsf/__alloc local.tee $2 - local.get $3 + local.get $4 i32.load call $~lib/rt/pure/__retain i32.store local.get $2 - local.get $3 + local.get $4 i32.load offset=4 local.get $0 i32.const 2 @@ -2230,6 +2231,8 @@ i32.store offset=8 local.get $2 call $~lib/rt/pure/__retain + local.get $4 + call $~lib/rt/pure/__release ) (func $~lib/typedarray/Float64Array#__set (param $0 i32) (param $1 i32) (param $2 f64) local.get $1 @@ -2259,17 +2262,18 @@ (local $3 i32) (local $4 i32) local.get $0 - local.tee $3 + call $~lib/rt/pure/__retain + local.tee $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $4 + 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 $0 i32.const 0 @@ -2279,9 +2283,9 @@ 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 @@ -2291,7 +2295,7 @@ i32.lt_s if (result i32) local.get $2 - local.get $4 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -2301,9 +2305,9 @@ 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 @@ -2312,12 +2316,12 @@ i32.const 13 call $~lib/rt/tlsf/__alloc local.tee $2 - local.get $3 + local.get $4 i32.load call $~lib/rt/pure/__retain i32.store local.get $2 - local.get $3 + local.get $4 i32.load offset=4 local.get $0 i32.const 3 @@ -2338,6 +2342,8 @@ i32.store offset=8 local.get $2 call $~lib/rt/pure/__retain + local.get $4 + call $~lib/rt/pure/__release ) (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (local $2 i32) @@ -3164,6 +3170,12 @@ (local $2 i32) (local $3 i32) (local $4 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 block $folding-inner0 local.get $0 i32.load offset=8 @@ -3208,24 +3220,33 @@ br $for-loop|0 end end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 1 return end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 0 ) (func $~lib/typedarray/Int8Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 - local.tee $3 + call $~lib/rt/pure/__retain + local.tee $4 i32.load offset=8 - local.set $4 + 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 $0 i32.const 0 @@ -3235,9 +3256,9 @@ 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 @@ -3247,7 +3268,7 @@ i32.lt_s if (result i32) local.get $2 - local.get $4 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -3257,9 +3278,9 @@ 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 @@ -3268,13 +3289,13 @@ i32.const 3 call $~lib/rt/tlsf/__alloc local.tee $2 - local.get $3 + local.get $4 i32.load call $~lib/rt/pure/__retain i32.store local.get $2 local.get $0 - local.get $3 + local.get $4 i32.load offset=4 i32.add i32.store offset=4 @@ -3290,6 +3311,8 @@ i32.store offset=8 local.get $2 call $~lib/rt/pure/__retain + local.get $4 + call $~lib/rt/pure/__release ) (func $~lib/typedarray/Int32Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) @@ -3401,8 +3424,13 @@ (func $std/typedarray/isInt32ArrayEqual (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 block $folding-inner0 local.get $1 + call $~lib/rt/pure/__retain + local.tee $1 i32.load offset=12 local.get $0 i32.load offset=8 @@ -3435,15 +3463,25 @@ br $for-loop|0 end end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 1 return end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release i32.const 0 ) (func $~lib/typedarray/Int32Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -3455,9 +3493,9 @@ local.get $1 local.get $3 i32.add - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select @@ -3469,7 +3507,7 @@ i32.lt_s select end - local.set $1 + local.set $0 local.get $2 i32.const 0 i32.lt_s @@ -3477,9 +3515,9 @@ local.get $2 local.get $3 i32.add - local.tee $2 + local.tee $1 i32.const 0 - local.get $2 + local.get $1 i32.const 0 i32.gt_s select @@ -3491,33 +3529,35 @@ i32.lt_s select end - local.get $1 + local.get $0 i32.sub - local.tee $2 + local.tee $1 i32.const 0 - local.get $2 + local.get $1 i32.const 0 i32.gt_s select - local.tee $2 + local.tee $1 call $~lib/typedarray/Int32Array#constructor - local.tee $3 + local.tee $2 call $~lib/rt/pure/__retain - local.tee $4 + local.tee $3 i32.load offset=4 - local.get $0 + local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add - local.get $2 + local.get $1 i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $3 - call $~lib/rt/pure/__release local.get $4 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $3 ) (func $~lib/typedarray/Int32Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) @@ -3659,6 +3699,8 @@ (local $5 i32) (local $6 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $4 local.get $0 @@ -3690,6 +3732,8 @@ br $for-loop|0 end end + local.get $0 + call $~lib/rt/pure/__release local.get $3 ) (func $~lib/typedarray/Int16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) @@ -3747,6 +3791,8 @@ (local $5 i32) (local $6 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $4 local.get $0 @@ -3782,6 +3828,8 @@ br $for-loop|0 end end + local.get $0 + call $~lib/rt/pure/__release local.get $3 ) (func $~lib/typedarray/Uint32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) @@ -3844,6 +3892,8 @@ (local $5 i32) (local $6 i64) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $4 local.get $0 @@ -3879,6 +3929,8 @@ br $for-loop|0 end end + local.get $0 + call $~lib/rt/pure/__release local.get $3 ) (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) @@ -3945,19 +3997,21 @@ (local $4 i32) (local $5 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $2 i32.load offset=4 local.set $4 - local.get $0 + local.get $2 i32.load offset=8 i32.const 1 i32.sub - local.set $2 + local.set $0 loop $for-loop|0 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 + local.get $0 local.get $4 i32.add i32.load8_u @@ -3966,18 +4020,20 @@ global.set $~argumentsLength local.get $3 local.get $5 - local.get $2 local.get $0 + local.get $2 local.get $1 call_indirect (type $i32_i32_i32_i32_=>_i32) local.set $3 - local.get $2 + local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $0 br $for-loop|0 end end + local.get $2 + call $~lib/rt/pure/__release local.get $3 ) (func $~lib/typedarray/Int32Array#reduceRight (param $0 i32) (param $1 i32) (result i32) @@ -3986,22 +4042,24 @@ (local $4 i32) (local $5 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $2 i32.load offset=4 local.set $4 - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $2 + local.set $0 loop $for-loop|0 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if local.get $4 - local.get $2 + local.get $0 i32.const 2 i32.shl i32.add @@ -4011,18 +4069,20 @@ global.set $~argumentsLength local.get $3 local.get $5 - local.get $2 local.get $0 + local.get $2 local.get $1 call_indirect (type $i32_i32_i32_i32_=>_i32) local.set $3 - local.get $2 + local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $0 br $for-loop|0 end end + local.get $2 + call $~lib/rt/pure/__release local.get $3 ) (func $~lib/typedarray/Int64Array#reduceRight (param $0 i32) (param $1 i32) (result i64) @@ -4031,22 +4091,24 @@ (local $4 i32) (local $5 i64) local.get $0 + call $~lib/rt/pure/__retain + local.tee $2 i32.load offset=4 local.set $4 - local.get $0 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $2 + local.set $0 loop $for-loop|0 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if local.get $4 - local.get $2 + local.get $0 i32.const 3 i32.shl i32.add @@ -4056,18 +4118,20 @@ global.set $~argumentsLength local.get $3 local.get $5 - local.get $2 local.get $0 + local.get $2 local.get $1 call_indirect (type $i64_i64_i32_i32_=>_i64) local.set $3 - local.get $2 + local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $0 br $for-loop|0 end end + local.get $2 + call $~lib/rt/pure/__release local.get $3 ) (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -4094,91 +4158,91 @@ i32.add i32.load8_u ) - (func $~lib/typedarray/Int16Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 1376 - i32.const 1440 - i32.const 408 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - ) - (func $~lib/typedarray/Uint16Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 + (func $~lib/typedarray/Int16Array#map (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 i32.load offset=8 i32.const 1 i32.shr_u - i32.ge_u - if - i32.const 1376 - i32.const 1440 - i32.const 536 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - local.get $0 + local.set $4 + local.get $3 i32.load offset=4 - local.get $1 + local.set $6 + i32.const 12 + i32.const 6 + call $~lib/rt/tlsf/__alloc + local.set $0 + local.get $4 i32.const 1 i32.shl - i32.add - i32.load16_u - ) - (func $~lib/typedarray/Uint32Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1376 - i32.const 1440 - i32.const 792 - i32.const 64 - call $~lib/builtins/abort - unreachable + local.tee $7 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $1 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + local.tee $8 + i32.add + i32.load16_s + local.set $5 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $8 + i32.add + local.get $5 + local.get $5 + i32.mul + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end local.get $0 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + call $~lib/rt/pure/__retain + i32.store local.get $0 + local.get $1 + i32.store offset=4 local.get $0 - i64.mul + local.get $7 + i32.store offset=8 + local.get $0 + call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#__get (param $0 i32) (param $1 i32) (result i64) + (func $~lib/typedarray/Int16Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u i32.ge_u if i32.const 1376 i32.const 1440 - i32.const 920 + i32.const 408 i32.const 64 call $~lib/builtins/abort unreachable @@ -4186,50 +4250,96 @@ local.get $0 i32.load offset=4 local.get $1 - i32.const 3 + i32.const 1 i32.shl i32.add - i64.load + i32.load16_s ) - (func $~lib/typedarray/Uint64Array#__get (param $0 i32) (param $1 i32) (result i64) - local.get $1 + (func $~lib/typedarray/Uint16Array#map (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u - i32.ge_u - if - i32.const 1376 - i32.const 1440 - i32.const 1048 - i32.const 64 - call $~lib/builtins/abort - unreachable + local.set $4 + local.get $3 + i32.load offset=4 + local.set $6 + i32.const 12 + i32.const 7 + call $~lib/rt/tlsf/__alloc + local.set $0 + local.get $4 + i32.const 1 + i32.shl + local.tee $7 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $1 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + local.tee $8 + i32.add + i32.load16_u + local.set $5 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $8 + i32.add + local.get $5 + local.get $5 + i32.mul + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end local.get $0 - i32.load offset=4 local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result f32) + call $~lib/rt/pure/__retain + i32.store local.get $0 + local.get $1 + i32.store offset=4 local.get $0 - f32.mul + local.get $7 + i32.store offset=8 + local.get $0 + call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) + (func $~lib/typedarray/Uint16Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=8 - i32.const 2 + i32.const 1 i32.shr_u i32.ge_u if i32.const 1376 i32.const 1440 - i32.const 1176 + i32.const 536 i32.const 64 call $~lib/builtins/abort unreachable @@ -4237,139 +4347,86 @@ local.get $0 i32.load offset=4 local.get $1 - i32.const 2 + i32.const 1 i32.shl i32.add - f32.load - ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result f64) - local.get $0 - local.get $0 - f64.mul - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 2 - i32.gt_s + i32.load16_u ) - (func $~lib/rt/tlsf/reallocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#map (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - local.get $2 - call $~lib/rt/tlsf/prepareSize + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain local.tee $3 - local.get $1 - i32.load - local.tee $5 - i32.const -4 - i32.and - i32.le_u - if - local.get $0 - local.get $1 - local.get $3 - call $~lib/rt/tlsf/prepareBlock - local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $4 + local.get $3 + i32.load offset=4 + local.set $6 + i32.const 12 + i32.const 8 + call $~lib/rt/tlsf/__alloc + local.set $0 + local.get $4 + i32.const 2 + i32.shl + local.tee $7 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $1 + loop $for-loop|0 local.get $2 - i32.store offset=12 - local.get $1 - return - end - local.get $1 - i32.const 16 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $6 - i32.load - local.tee $4 - i32.const 1 - i32.and - if - local.get $5 - i32.const -4 - i32.and - i32.const 16 - i32.add local.get $4 - i32.const -4 - i32.and - i32.add - local.tee $4 - local.get $3 - i32.ge_u + i32.lt_s if - local.get $0 local.get $6 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $5 - i32.const 3 - i32.and - local.get $4 - 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 + i32.const 2 + i32.shl + local.tee $8 + i32.add + i32.load + local.set $5 + i32.const 3 + global.set $~argumentsLength local.get $1 - return + local.get $8 + i32.add + local.get $5 + local.get $5 + i32.mul + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end local.get $0 - local.get $2 local.get $1 - i32.load offset=8 - call $~lib/rt/tlsf/allocateBlock - local.tee $3 + call $~lib/rt/pure/__retain + i32.store + local.get $0 local.get $1 - i32.load offset=4 i32.store offset=4 - local.get $3 - i32.const 16 - i32.add - local.get $1 - i32.const 16 - i32.add - local.get $2 - call $~lib/memory/memory.copy - local.get $1 - i32.const 8620 - i32.ge_u - if - local.get $1 - local.get $3 - call $~lib/rt/rtrace/onrealloc - local.get $0 - local.get $1 - call $~lib/rt/tlsf/freeBlock - end - local.get $3 - ) - (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 + local.get $7 + i32.store offset=8 + local.get $0 + call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> - (local $0 i32) + (func $~lib/typedarray/Uint32Array#map (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4377,969 +4434,702 @@ (local $5 i32) (local $6 i32) (local $7 i32) - i32.const 6 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - local.get $1 + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 i32.load offset=8 - local.set $5 + i32.const 2 + i32.shr_u + local.set $4 + local.get $3 + i32.load offset=4 + local.set $6 i32.const 12 - i32.const 3 + i32.const 9 call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $5 + local.set $0 + local.get $4 + i32.const 2 + i32.shl + local.tee $7 i32.const 0 call $~lib/rt/tlsf/__alloc - local.set $6 - local.get $1 - i32.load offset=4 - local.set $0 + local.set $1 loop $for-loop|0 - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.get $3 + local.get $6 + local.get $2 + i32.const 2 + i32.shl + local.tee $8 i32.add - i32.load8_s - local.set $7 + i32.load + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $3 local.get $1 - call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 - if - local.get $2 - local.get $6 - i32.add - local.get $7 - i32.store8 - local.get $2 - i32.const 1 - i32.add - local.set $2 - end - local.get $3 + local.get $8 + i32.add + local.get $5 + local.get $5 + i32.mul + i32.store + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end - local.get $4 - local.get $6 - local.get $2 - call $~lib/rt/tlsf/__realloc - local.tee $0 + local.get $0 + local.get $1 call $~lib/rt/pure/__retain i32.store - local.get $4 - local.get $2 - i32.store offset=8 - local.get $4 local.get $0 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/rt/pure/__retain - local.tee $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1312 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 391 - i32.const 3 - call $~lib/builtins/abort - unreachable - end local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 392 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $7 + i32.store offset=8 local.get $0 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 393 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint32Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 local.get $0 + i32.load offset=8 i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 5 - i32.ne + i32.shr_u + i32.ge_u if - i32.const 0 - i32.const 1312 - i32.const 394 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 792 + i32.const 64 call $~lib/builtins/abort unreachable end - local.get $1 - call $~lib/rt/pure/__release local.get $0 - call $~lib/rt/pure/__release + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i64) local.get $0 - i32.const 255 - i32.and - i32.const 2 - i32.gt_u + local.get $0 + i64.mul ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> - (local $0 i32) + (func $~lib/typedarray/Int64Array#map (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 i64) (local $6 i32) (local $7 i32) - i32.const 6 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint8Array#__set - local.get $1 + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 i32.load offset=8 - local.set $5 + i32.const 3 + i32.shr_u + local.set $4 + local.get $3 + i32.load offset=4 + local.set $6 i32.const 12 - i32.const 4 + i32.const 10 call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $5 + local.set $0 + local.get $4 + i32.const 3 + i32.shl + local.tee $7 i32.const 0 call $~lib/rt/tlsf/__alloc - local.set $6 - local.get $1 - i32.load offset=4 - local.set $0 + local.set $1 loop $for-loop|0 - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.get $3 + local.get $6 + local.get $2 + i32.const 3 + i32.shl + local.tee $8 i32.add - i32.load8_u - local.set $7 + i64.load + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $3 local.get $1 - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 - if - local.get $2 - local.get $6 - i32.add - local.get $7 - i32.store8 - local.get $2 - i32.const 1 - i32.add - local.set $2 - end - local.get $3 + local.get $8 + i32.add + local.get $5 + local.get $5 + i64.mul + i64.store + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end - local.get $4 - local.get $6 - local.get $2 - call $~lib/rt/tlsf/__realloc - local.tee $0 + local.get $0 + local.get $1 call $~lib/rt/pure/__retain i32.store - local.get $4 - local.get $2 - i32.store offset=8 - local.get $4 local.get $0 + local.get $1 i32.store offset=4 - local.get $4 + local.get $0 + local.get $7 + i32.store offset=8 + local.get $0 call $~lib/rt/pure/__retain - local.tee $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1312 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $3 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#__get (param $0 i32) (param $1 i32) (result i64) + local.get $1 local.get $0 i32.load offset=8 i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 391 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 392 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 4 - i32.ne + i32.shr_u + i32.ge_u if - i32.const 0 - i32.const 1312 - i32.const 393 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 920 + i32.const 64 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 394 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.load offset=4 local.get $1 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release + i32.const 3 + i32.shl + i32.add + i64.load ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) + (func $~lib/typedarray/Uint64Array#map (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 i64) (local $6 i32) (local $7 i32) - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + (local $8 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 i32.load offset=8 - local.set $5 + i32.const 3 + i32.shr_u + local.set $4 + local.get $3 + i32.load offset=4 + local.set $6 i32.const 12 - i32.const 5 + i32.const 11 call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $5 + local.set $0 + local.get $4 + i32.const 3 + i32.shl + local.tee $7 i32.const 0 call $~lib/rt/tlsf/__alloc - local.set $6 - local.get $1 - i32.load offset=4 - local.set $0 + local.set $1 loop $for-loop|0 - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.get $3 + local.get $6 + local.get $2 + i32.const 3 + i32.shl + local.tee $8 i32.add - i32.load8_u - local.set $7 + i64.load + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $3 local.get $1 - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 - if - local.get $2 - local.get $6 - i32.add - local.get $7 - i32.store8 - local.get $2 - i32.const 1 - i32.add - local.set $2 - end - local.get $3 + local.get $8 + i32.add + local.get $5 + local.get $5 + i64.mul + i64.store + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end - local.get $4 - local.get $6 - local.get $2 - call $~lib/rt/tlsf/__realloc - local.tee $0 + local.get $0 + local.get $1 call $~lib/rt/pure/__retain i32.store - local.get $4 - local.get $2 - i32.store offset=8 - local.get $4 local.get $0 + local.get $1 i32.store offset=4 - local.get $4 + local.get $0 + local.get $7 + i32.store offset=8 + local.get $0 call $~lib/rt/pure/__retain - local.tee $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1312 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $3 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint64Array#__get (param $0 i32) (param $1 i32) (result i64) + local.get $1 local.get $0 i32.load offset=8 i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 391 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 392 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 4 - i32.ne + i32.shr_u + i32.ge_u if - i32.const 0 - i32.const 1312 - i32.const 393 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1048 + i32.const 64 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 394 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.load offset=4 local.get $1 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release + i32.const 3 + i32.shl + i32.add + i64.load ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result f32) local.get $0 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 2 - i32.gt_s + local.get $0 + f32.mul ) - (func $~lib/typedarray/Int16Array#filter (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#map (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f32) (local $6 i32) (local $7 i32) + (local $8 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 i32.load offset=8 - i32.const 1 + i32.const 2 i32.shr_u - local.set $1 + local.set $4 + local.get $3 + i32.load offset=4 + local.set $6 + i32.const 12 i32.const 12 - i32.const 6 call $~lib/rt/tlsf/__alloc - local.set $2 - local.get $1 - i32.const 1 + local.set $0 + local.get $4 + i32.const 2 i32.shl + local.tee $7 i32.const 0 call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $0 - i32.load offset=4 - local.set $7 + local.set $1 loop $for-loop|0 - local.get $3 - local.get $1 + local.get $2 + local.get $4 i32.lt_s if - local.get $7 - local.get $3 - i32.const 1 + local.get $6 + local.get $2 + i32.const 2 i32.shl + local.tee $8 i32.add - i32.load16_s - local.set $6 + f32.load + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $6 - local.get $3 - local.get $0 - call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 - if - local.get $5 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.get $6 - i32.store16 - local.get $4 - i32.const 1 - i32.add - local.set $4 - end - local.get $3 + local.get $1 + local.get $8 + i32.add + local.get $5 + local.get $5 + f32.mul + f32.store + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end - local.get $2 - local.get $5 - local.get $4 - i32.const 1 - i32.shl - local.tee $0 - call $~lib/rt/tlsf/__realloc - local.tee $1 + local.get $0 + local.get $1 call $~lib/rt/pure/__retain i32.store - local.get $2 local.get $0 - i32.store offset=8 - local.get $2 local.get $1 i32.store offset=4 - local.get $2 - call $~lib/rt/pure/__retain - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - i32.const 6 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#__set local.get $0 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Int16Array#__set + local.get $7 + i32.store offset=8 local.get $0 - call $~lib/typedarray/Int16Array#filter - local.tee $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1312 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) local.get $1 + local.get $0 i32.load offset=8 - i32.const 1 + i32.const 2 i32.shr_u - i32.const 3 - i32.ne + i32.ge_u if - i32.const 0 - i32.const 1312 - i32.const 391 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 392 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 393 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1176 + i32.const 64 call $~lib/builtins/abort unreachable end + local.get $0 + i32.load offset=4 local.get $1 i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 394 - 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.shl + i32.add + f32.load ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result f64) local.get $0 - i32.const 65535 - i32.and - i32.const 2 - i32.gt_u + local.get $0 + f64.mul ) - (func $~lib/typedarray/Uint16Array#filter (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#map (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f64) (local $6 i32) (local $7 i32) + (local $8 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u - local.set $1 + local.set $4 + local.get $3 + i32.load offset=4 + local.set $6 i32.const 12 - i32.const 7 + i32.const 13 call $~lib/rt/tlsf/__alloc - local.set $2 - local.get $1 - i32.const 1 + local.set $0 + local.get $4 + i32.const 3 i32.shl + local.tee $7 i32.const 0 call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $0 - i32.load offset=4 - local.set $7 + local.set $1 loop $for-loop|0 - local.get $3 - local.get $1 + local.get $2 + local.get $4 i32.lt_s if - local.get $7 - local.get $3 - i32.const 1 + local.get $6 + local.get $2 + i32.const 3 i32.shl + local.tee $8 i32.add - i32.load16_u - local.set $6 + f64.load + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $6 - local.get $3 - local.get $0 - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 - if - local.get $5 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.get $6 - i32.store16 - local.get $4 - i32.const 1 - i32.add - local.set $4 - end - local.get $3 + local.get $1 + local.get $8 + i32.add + local.get $5 + local.get $5 + f64.mul + f64.store + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end - local.get $2 - local.get $5 - local.get $4 - i32.const 1 - i32.shl - local.tee $0 - call $~lib/rt/tlsf/__realloc - local.tee $1 + local.get $0 + local.get $1 call $~lib/rt/pure/__retain i32.store - local.get $2 local.get $0 - i32.store offset=8 - local.get $2 local.get $1 i32.store offset=4 - local.get $2 - call $~lib/rt/pure/__retain - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - i32.const 6 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - call $~lib/typedarray/Uint16Array#filter - local.tee $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1312 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 391 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 392 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 393 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 394 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $7 + i32.store offset=8 local.get $0 - call $~lib/rt/pure/__release - local.get $1 + call $~lib/rt/pure/__retain + local.get $3 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s i32.const 2 i32.gt_s ) - (func $~lib/typedarray/Int32Array#filter (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (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.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $4 - i32.const 12 - i32.const 8 - call $~lib/rt/tlsf/__alloc - local.set $2 - local.get $4 - i32.const 2 - i32.shl - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $0 - i32.load offset=4 - local.set $6 - loop $for-loop|0 - local.get $1 + local.get $2 + call $~lib/rt/tlsf/prepareSize + local.tee $3 + local.get $1 + i32.load + local.tee $5 + i32.const -4 + 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 + i32.const 16 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $6 + i32.load + local.tee $4 + i32.const 1 + i32.and + if + local.get $5 + i32.const -4 + i32.and + i32.const 16 + i32.add local.get $4 - i32.lt_s + i32.const -4 + i32.and + i32.add + local.tee $4 + local.get $3 + i32.ge_u if + local.get $0 local.get $6 + call $~lib/rt/tlsf/removeBlock local.get $1 - i32.const 2 - i32.shl + local.get $5 + i32.const 3 + i32.and + local.get $4 + 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.tee $3 + local.get $1 + i32.load offset=4 + i32.store offset=4 + local.get $3 + i32.const 16 + i32.add + local.get $1 + i32.const 16 + i32.add + local.get $2 + call $~lib/memory/memory.copy + local.get $1 + i32.const 8620 + i32.ge_u + if + local.get $1 + local.get $3 + call $~lib/rt/rtrace/onrealloc + local.get $0 + local.get $1 + call $~lib/rt/tlsf/freeBlock + end + local.get $3 + ) + (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/typedarray/Int8Array#filter (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $4 + i32.load offset=8 + local.set $0 + i32.const 12 + i32.const 3 + call $~lib/rt/tlsf/__alloc + local.set $2 + local.get $0 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $4 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $3 + local.get $0 + i32.lt_s + if + local.get $3 + local.get $7 i32.add - i32.load - local.set $0 + i32.load8_s + local.set $6 i32.const 3 global.set $~argumentsLength - local.get $0 - i32.const 2 - i32.gt_s + local.get $6 + local.get $3 + local.get $4 + call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 if + local.get $1 local.get $5 - local.get $3 - i32.const 2 - i32.shl i32.add - local.get $0 - i32.store - local.get $3 + local.get $6 + i32.store8 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0 end end local.get $2 local.get $5 - local.get $3 - i32.const 2 - i32.shl - local.tee $0 + local.get $1 call $~lib/rt/tlsf/__realloc - local.tee $1 + local.tee $0 call $~lib/rt/pure/__retain i32.store local.get $2 - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $1 + local.get $0 i32.store offset=4 local.get $2 call $~lib/rt/pure/__retain + local.get $4 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> (local $0 i32) (local $1 i32) + (local $2 i32) i32.const 6 - call $~lib/typedarray/Int32Array#constructor + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain local.tee $0 i32.const 0 i32.const 1 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 1 i32.const 2 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 2 i32.const 3 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 3 i32.const 4 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 5 i32.const 5 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Int8Array#__set local.get $0 - call $~lib/typedarray/Int32Array#filter + call $~lib/typedarray/Int8Array#filter local.tee $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if @@ -5352,8 +5142,6 @@ end local.get $1 i32.load offset=8 - i32.const 2 - i32.shr_u i32.const 3 i32.ne if @@ -5366,7 +5154,7 @@ end local.get $1 i32.const 0 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 3 i32.ne if @@ -5379,7 +5167,7 @@ end local.get $1 i32.const 1 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 4 i32.ne if @@ -5392,7 +5180,7 @@ end local.get $1 i32.const 2 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 5 i32.ne if @@ -5403,124 +5191,126 @@ call $~lib/builtins/abort unreachable end + local.get $2 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 + i32.const 255 + i32.and i32.const 2 i32.gt_u ) - (func $~lib/typedarray/Uint32Array#filter (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#filter (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $4 i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $4 + local.set $0 i32.const 12 - i32.const 9 + i32.const 4 call $~lib/rt/tlsf/__alloc local.set $2 - local.get $4 - i32.const 2 - i32.shl + local.get $0 i32.const 0 call $~lib/rt/tlsf/__alloc local.set $5 - local.get $0 + local.get $4 i32.load offset=4 - local.set $6 + local.set $7 loop $for-loop|0 - local.get $1 - local.get $4 + local.get $3 + local.get $0 i32.lt_s if - local.get $6 - local.get $1 - i32.const 2 - i32.shl + local.get $3 + local.get $7 i32.add - i32.load - local.set $0 + i32.load8_u + local.set $6 i32.const 3 global.set $~argumentsLength - local.get $0 - i32.const 2 - i32.gt_u + local.get $6 + local.get $3 + local.get $4 + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 if + local.get $1 local.get $5 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.get $0 - i32.store - local.get $3 - i32.const 1 i32.add - local.set $3 + local.get $6 + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0 end end local.get $2 local.get $5 - local.get $3 - i32.const 2 - i32.shl - local.tee $0 + local.get $1 call $~lib/rt/tlsf/__realloc - local.tee $1 + local.tee $0 call $~lib/rt/pure/__retain i32.store local.get $2 - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $1 + local.get $0 i32.store offset=4 local.get $2 call $~lib/rt/pure/__retain + local.get $4 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> (local $0 i32) (local $1 i32) + (local $2 i32) i32.const 6 - call $~lib/typedarray/Uint32Array#constructor + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain local.tee $0 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 3 i32.const 4 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 5 i32.const 5 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Uint8Array#__set local.get $0 - call $~lib/typedarray/Uint32Array#filter + call $~lib/typedarray/Uint8Array#filter local.tee $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if @@ -5533,8 +5323,6 @@ end local.get $1 i32.load offset=8 - i32.const 2 - i32.shr_u i32.const 3 i32.ne if @@ -5547,7 +5335,7 @@ end local.get $1 i32.const 0 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 3 i32.ne if @@ -5560,7 +5348,7 @@ end local.get $1 i32.const 1 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 4 i32.ne if @@ -5573,7 +5361,7 @@ end local.get $1 i32.const 2 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 5 i32.ne if @@ -5584,124 +5372,119 @@ call $~lib/builtins/abort unreachable end + local.get $2 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i64.const 2 - i64.gt_s - ) - (func $~lib/typedarray/Int64Array#filter (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#filter (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) + (local $6 i32) + (local $7 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $4 i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $4 + local.set $0 i32.const 12 - i32.const 10 + i32.const 5 call $~lib/rt/tlsf/__alloc local.set $2 - local.get $4 - i32.const 3 - i32.shl + local.get $0 i32.const 0 call $~lib/rt/tlsf/__alloc local.set $5 - local.get $0 + local.get $4 i32.load offset=4 - local.set $0 + local.set $7 loop $for-loop|0 - local.get $1 - local.get $4 + local.get $3 + local.get $0 i32.lt_s if - local.get $0 - local.get $1 - i32.const 3 - i32.shl + local.get $3 + local.get $7 i32.add - i64.load + i32.load8_u local.set $6 i32.const 3 global.set $~argumentsLength local.get $6 - i64.const 2 - i64.gt_s + local.get $3 + local.get $4 + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 if + local.get $1 local.get $5 - local.get $3 - i32.const 3 - i32.shl i32.add local.get $6 - i64.store - local.get $3 + i32.store8 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0 end end local.get $2 local.get $5 - local.get $3 - i32.const 3 - i32.shl - local.tee $0 + local.get $1 call $~lib/rt/tlsf/__realloc - local.tee $1 + local.tee $0 call $~lib/rt/pure/__retain i32.store local.get $2 - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $1 + local.get $0 i32.store offset=4 local.get $2 call $~lib/rt/pure/__retain + local.get $4 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> (local $0 i32) (local $1 i32) + (local $2 i32) i32.const 6 - call $~lib/typedarray/Int64Array#constructor + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 + call $~lib/rt/pure/__retain local.tee $0 i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 3 - i64.const 4 - call $~lib/typedarray/Int64Array#__set + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 5 - i64.const 5 - call $~lib/typedarray/Int64Array#__set + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - call $~lib/typedarray/Int64Array#filter + call $~lib/typedarray/Uint8ClampedArray#filter local.tee $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if @@ -5715,8 +5498,6 @@ local.get $1 i32.load offset=8 i32.const 3 - i32.shr_u - i32.const 3 i32.ne if i32.const 0 @@ -5728,9 +5509,9 @@ end local.get $1 i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 3 - i64.ne + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.ne if i32.const 0 i32.const 1312 @@ -5741,9 +5522,9 @@ end local.get $1 i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 4 - i64.ne + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 4 + i32.ne if i32.const 0 i32.const 1312 @@ -5754,9 +5535,9 @@ end local.get $1 i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 5 - i64.ne + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 5 + i32.ne if i32.const 0 i32.const 1312 @@ -5765,66 +5546,76 @@ call $~lib/builtins/abort unreachable end + local.get $2 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i64.const 2 - i64.gt_u + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 2 + i32.gt_s ) - (func $~lib/typedarray/Uint64Array#filter (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#filter (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) + (local $6 i32) + (local $7 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $4 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.set $4 + local.set $0 i32.const 12 - i32.const 11 + i32.const 6 call $~lib/rt/tlsf/__alloc local.set $2 - local.get $4 - i32.const 3 + local.get $0 + i32.const 1 i32.shl i32.const 0 call $~lib/rt/tlsf/__alloc local.set $5 - local.get $0 + local.get $4 i32.load offset=4 - local.set $0 + local.set $7 loop $for-loop|0 local.get $1 - local.get $4 + local.get $0 i32.lt_s if - local.get $0 + local.get $7 local.get $1 - i32.const 3 + i32.const 1 i32.shl i32.add - i64.load + i32.load16_s local.set $6 i32.const 3 global.set $~argumentsLength local.get $6 - i64.const 2 - i64.gt_u + local.get $1 + local.get $4 + call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 if local.get $5 local.get $3 - i32.const 3 + i32.const 1 i32.shl i32.add local.get $6 - i64.store + i32.store16 local.get $3 i32.const 1 i32.add @@ -5840,7 +5631,7 @@ local.get $2 local.get $5 local.get $3 - i32.const 3 + i32.const 1 i32.shl local.tee $0 call $~lib/rt/tlsf/__realloc @@ -5855,34 +5646,39 @@ i32.store offset=4 local.get $2 call $~lib/rt/pure/__retain + local.get $4 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> (local $0 i32) (local $1 i32) + (local $2 i32) i32.const 6 - call $~lib/typedarray/Uint64Array#constructor + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain local.tee $0 i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set + i32.const 1 + call $~lib/typedarray/Int16Array#__set local.get $0 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set + i32.const 2 + call $~lib/typedarray/Int16Array#__set local.get $0 i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set + i32.const 3 + call $~lib/typedarray/Int16Array#__set local.get $0 i32.const 3 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set + i32.const 4 + call $~lib/typedarray/Int16Array#__set local.get $0 i32.const 5 - i64.const 5 - call $~lib/typedarray/Uint64Array#__set + i32.const 5 + call $~lib/typedarray/Int16Array#__set local.get $0 - call $~lib/typedarray/Uint64Array#filter + call $~lib/typedarray/Int16Array#filter local.tee $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if @@ -5895,7 +5691,7 @@ end local.get $1 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u i32.const 3 i32.ne @@ -5909,9 +5705,9 @@ end local.get $1 i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 3 - i64.ne + call $~lib/typedarray/Int16Array#__get + i32.const 3 + i32.ne if i32.const 0 i32.const 1312 @@ -5922,9 +5718,9 @@ end local.get $1 i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 4 - i64.ne + call $~lib/typedarray/Int16Array#__get + i32.const 4 + i32.ne if i32.const 0 i32.const 1312 @@ -5935,9 +5731,9 @@ end local.get $1 i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 5 - i64.ne + call $~lib/typedarray/Int16Array#__get + i32.const 5 + i32.ne if i32.const 0 i32.const 1312 @@ -5946,66 +5742,74 @@ call $~lib/builtins/abort unreachable end + local.get $2 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - f32.const 2 - f32.gt + i32.const 65535 + i32.and + i32.const 2 + i32.gt_u ) - (func $~lib/typedarray/Float32Array#filter (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#filter (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 f32) + (local $6 i32) + (local $7 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $4 i32.load offset=8 - i32.const 2 + i32.const 1 i32.shr_u - local.set $4 - i32.const 12 + local.set $0 i32.const 12 + i32.const 7 call $~lib/rt/tlsf/__alloc local.set $2 - local.get $4 - i32.const 2 + local.get $0 + i32.const 1 i32.shl i32.const 0 call $~lib/rt/tlsf/__alloc local.set $5 - local.get $0 + local.get $4 i32.load offset=4 - local.set $0 + local.set $7 loop $for-loop|0 local.get $1 - local.get $4 + local.get $0 i32.lt_s if - local.get $0 + local.get $7 local.get $1 - i32.const 2 + i32.const 1 i32.shl i32.add - f32.load + i32.load16_u local.set $6 i32.const 3 global.set $~argumentsLength local.get $6 - f32.const 2 - f32.gt + local.get $1 + local.get $4 + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 if local.get $5 local.get $3 - i32.const 2 + i32.const 1 i32.shl i32.add local.get $6 - f32.store + i32.store16 local.get $3 i32.const 1 i32.add @@ -6021,7 +5825,7 @@ local.get $2 local.get $5 local.get $3 - i32.const 2 + i32.const 1 i32.shl local.tee $0 call $~lib/rt/tlsf/__realloc @@ -6036,34 +5840,39 @@ i32.store offset=4 local.get $2 call $~lib/rt/pure/__retain + local.get $4 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> (local $0 i32) (local $1 i32) + (local $2 i32) i32.const 6 - call $~lib/typedarray/Float32Array#constructor + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain local.tee $0 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set + i32.const 1 + call $~lib/typedarray/Uint16Array#__set local.get $0 i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set + i32.const 2 + call $~lib/typedarray/Uint16Array#__set local.get $0 i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set + i32.const 3 + call $~lib/typedarray/Uint16Array#__set local.get $0 i32.const 3 - f32.const 4 - call $~lib/typedarray/Float32Array#__set + i32.const 4 + call $~lib/typedarray/Uint16Array#__set local.get $0 i32.const 5 - f32.const 5 - call $~lib/typedarray/Float32Array#__set + i32.const 5 + call $~lib/typedarray/Uint16Array#__set local.get $0 - call $~lib/typedarray/Float32Array#filter + call $~lib/typedarray/Uint16Array#filter local.tee $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if @@ -6076,7 +5885,7 @@ end local.get $1 i32.load offset=8 - i32.const 2 + i32.const 1 i32.shr_u i32.const 3 i32.ne @@ -6090,9 +5899,9 @@ end local.get $1 i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 3 - f32.ne + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.ne if i32.const 0 i32.const 1312 @@ -6103,9 +5912,9 @@ end local.get $1 i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 4 - f32.ne + call $~lib/typedarray/Uint16Array#__get + i32.const 4 + i32.ne if i32.const 0 i32.const 1312 @@ -6116,9 +5925,9 @@ end local.get $1 i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 5 - f32.ne + call $~lib/typedarray/Uint16Array#__get + i32.const 5 + i32.ne if i32.const 0 i32.const 1312 @@ -6127,124 +5936,134 @@ call $~lib/builtins/abort unreachable end + local.get $2 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - f64.const 2 - f64.gt + i32.const 2 + i32.gt_s ) - (func $~lib/typedarray/Float64Array#filter (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#filter (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 f64) + (local $6 i32) + (local $7 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u local.set $4 i32.const 12 - i32.const 13 + i32.const 8 call $~lib/rt/tlsf/__alloc - local.set $2 + local.set $0 local.get $4 - i32.const 3 + i32.const 2 i32.shl i32.const 0 call $~lib/rt/tlsf/__alloc local.set $5 - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 + local.set $7 loop $for-loop|0 - local.get $1 + local.get $2 local.get $4 i32.lt_s if - local.get $0 - local.get $1 - i32.const 3 + local.get $7 + local.get $2 + i32.const 2 i32.shl i32.add - f64.load + i32.load local.set $6 i32.const 3 global.set $~argumentsLength local.get $6 - f64.const 2 - f64.gt + i32.const 2 + i32.gt_s if local.get $5 - local.get $3 - i32.const 3 + local.get $1 + i32.const 2 i32.shl i32.add local.get $6 - f64.store - local.get $3 + i32.store + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $2 + local.get $0 local.get $5 - local.get $3 - i32.const 3 + local.get $1 + i32.const 2 i32.shl - local.tee $0 + local.tee $2 call $~lib/rt/tlsf/__realloc local.tee $1 call $~lib/rt/pure/__retain i32.store - local.get $2 local.get $0 - i32.store offset=8 local.get $2 + i32.store offset=8 + local.get $0 local.get $1 i32.store offset=4 - local.get $2 + local.get $0 call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> (local $0 i32) (local $1 i32) + (local $2 i32) i32.const 6 - call $~lib/typedarray/Float64Array#constructor + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain local.tee $0 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set + i32.const 1 + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set + i32.const 2 + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set + i32.const 3 + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 3 - f64.const 4 - call $~lib/typedarray/Float64Array#__set + i32.const 4 + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 5 - f64.const 5 - call $~lib/typedarray/Float64Array#__set + i32.const 5 + call $~lib/typedarray/Int32Array#__set local.get $0 - call $~lib/typedarray/Float64Array#filter + call $~lib/typedarray/Int32Array#filter local.tee $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if @@ -6257,7 +6076,7 @@ end local.get $1 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u i32.const 3 i32.ne @@ -6271,9 +6090,9 @@ end local.get $1 i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 3 - f64.ne + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne if i32.const 0 i32.const 1312 @@ -6284,9 +6103,9 @@ end local.get $1 i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.ne + call $~lib/typedarray/Int32Array#__get + i32.const 4 + i32.ne if i32.const 0 i32.const 1312 @@ -6297,9 +6116,9 @@ end local.get $1 i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.ne + call $~lib/typedarray/Int32Array#__get + i32.const 5 + i32.ne if i32.const 0 i32.const 1312 @@ -6308,562 +6127,1012 @@ call $~lib/builtins/abort unreachable end + local.get $2 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 255 - i32.and i32.const 2 - i32.eq + i32.gt_u ) - (func $~lib/typedarray/Int8Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#filter (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 i32.load offset=8 + i32.const 2 + i32.shr_u local.set $4 + i32.const 12 + i32.const 9 + call $~lib/rt/tlsf/__alloc + local.set $0 + local.get $4 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $3 + i32.load offset=4 + local.set $7 loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if - block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $2 - local.get $3 + local.get $7 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $6 + i32.const 2 + i32.gt_u + if + local.get $5 + local.get $1 + i32.const 2 + i32.shl i32.add - i32.load8_s - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 + local.get $6 + i32.store local.get $1 - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - local.set $6 - br $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 - end - local.get $2 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + local.set $1 end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $6 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 255 - i32.and - i32.eqz + local.get $5 + local.get $1 + i32.const 2 + i32.shl + local.tee $2 + call $~lib/rt/tlsf/__realloc + local.tee $1 + call $~lib/rt/pure/__retain + i32.store + local.get $0 + local.get $2 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8Array#some (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + i32.const 6 + call $~lib/typedarray/Uint32Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set local.get $0 - i32.load offset=4 - local.set $3 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint32Array#__set local.get $0 + call $~lib/typedarray/Uint32Array#filter + local.tee $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1312 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 i32.load offset=8 - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $2 - local.get $3 - i32.add - i32.load8_u - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - local.set $6 - br $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 391 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $6 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 394 + 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 + local.get $1 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 65535 - i32.and - i32.const 2 - i32.eq + i64.const 2 + i64.gt_s ) - (func $~lib/typedarray/Int16Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#filter (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - local.get $0 - i32.load offset=4 - local.set $3 + (local $6 i64) + (local $7 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u local.set $4 + i32.const 12 + i32.const 10 + call $~lib/rt/tlsf/__alloc + local.set $0 + local.get $4 + i32.const 3 + i32.shl + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $3 + i32.load offset=4 + local.set $7 loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if - block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - local.set $6 - br $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 - end - local.get $2 + local.get $7 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $6 + i64.const 2 + i64.gt_s + if + local.get $5 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $6 + i64.store + local.get $1 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + local.set $1 end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $6 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 65535 - i32.and - i32.eqz + local.get $5 + local.get $1 + i32.const 3 + i32.shl + local.tee $2 + call $~lib/rt/tlsf/__realloc + local.tee $1 + call $~lib/rt/pure/__retain + i32.store + local.get $0 + local.get $2 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#some (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + i32.const 6 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 - local.set $3 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 5 + i64.const 5 + call $~lib/typedarray/Int64Array#__set + local.get $0 + call $~lib/typedarray/Int64Array#filter + local.tee $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1312 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - local.set $6 - br $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 391 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $6 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1312 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 4 + i64.ne + if + i32.const 0 + i32.const 1312 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1312 + i32.const 394 + 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 + local.get $1 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 2 - i32.eq + i64.const 2 + i64.gt_u ) - (func $~lib/typedarray/Int32Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#filter (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - local.get $0 - i32.load offset=4 - local.set $3 + (local $6 i64) + (local $7 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 i32.load offset=8 - i32.const 2 + i32.const 3 i32.shr_u local.set $4 + i32.const 12 + i32.const 11 + call $~lib/rt/tlsf/__alloc + local.set $0 + local.get $4 + i32.const 3 + i32.shl + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $3 + i32.load offset=4 + local.set $7 loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if - block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $3 - local.get $2 - i32.const 2 + local.get $7 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $6 + i64.const 2 + i64.gt_u + if + local.get $5 + local.get $1 + i32.const 3 i32.shl i32.add - i32.load - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 + local.get $6 + i64.store local.get $1 - call_indirect (type $i32_i32_i32_=>_i32) - if - i32.const 1 - local.set $6 - br $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 - end - local.get $2 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + local.set $1 end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $6 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.eqz - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $5 + local.get $1 + i32.const 3 + i32.shl + local.tee $2 + call $~lib/rt/tlsf/__realloc + local.tee $1 + call $~lib/rt/pure/__retain + i32.store local.get $0 - i64.const 2 - i64.eq + local.get $2 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#some (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) + i32.const 6 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set local.get $0 - i32.load offset=4 - local.set $3 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 5 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set local.get $0 + call $~lib/typedarray/Uint64Array#filter + local.tee $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1312 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - call_indirect (type $i64_i32_i32_=>_i32) - if - i32.const 1 - local.set $6 - br $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 391 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $6 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1312 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.ne + if + i32.const 0 + i32.const 1312 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1312 + i32.const 394 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release local.get $0 - i64.eqz + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 2 - f32.eq + f32.gt ) - (func $~lib/typedarray/Float32Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#filter (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f32) - (local $6 i32) - local.get $0 - i32.load offset=4 - local.set $3 + (local $5 i32) + (local $6 f32) + (local $7 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $4 + i32.const 12 + i32.const 12 + call $~lib/rt/tlsf/__alloc + local.set $0 + local.get $4 + i32.const 2 + i32.shl + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $3 + i32.load offset=4 + local.set $7 loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if - block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $3 - local.get $2 + local.get $7 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $6 + f32.const 2 + f32.gt + if + local.get $5 + local.get $1 i32.const 2 i32.shl i32.add - f32.load - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 + local.get $6 + f32.store local.get $1 - call_indirect (type $f32_i32_i32_=>_i32) - if - i32.const 1 - local.set $6 - br $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $2 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + local.set $1 end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $6 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - f32.const 0 - f32.eq - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $5 + local.get $1 + i32.const 2 + i32.shl + local.tee $2 + call $~lib/rt/tlsf/__realloc + local.tee $1 + call $~lib/rt/pure/__retain + i32.store local.get $0 - f64.const 2 - f64.eq - ) - (func $~lib/typedarray/Float64Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 i32) - local.get $0 - i32.load offset=4 - local.set $3 + local.get $2 + i32.store offset=8 local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - call_indirect (type $f64_i32_i32_=>_i32) - if - i32.const 1 - local.set $6 - br $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - end - local.get $6 - ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $1 + i32.store offset=4 local.get $0 - f64.const 0 - f64.eq + call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int8Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + i32.const 6 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set local.get $0 - i32.load offset=4 - local.set $3 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 3 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 5 + f32.const 5 + call $~lib/typedarray/Float32Array#__set local.get $0 + call $~lib/typedarray/Float32Array#filter + local.tee $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1312 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 i32.load offset=8 - local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - i32.load8_s - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - call_indirect (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const -1 - local.set $2 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 391 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.ne + if + i32.const 0 + i32.const 1312 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 4 + f32.ne + if + i32.const 0 + i32.const 1312 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.ne + if + i32.const 0 + i32.const 1312 + i32.const 394 + 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 + local.get $1 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 255 - i32.and - i32.const 4 - i32.eq + f64.const 2 + f64.gt ) - (func $~lib/typedarray/Uint8Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#filter (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 f64) + (local $7 i32) local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 i32.load offset=8 + i32.const 3 + i32.shr_u local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - loop $for-loop|0 + i32.const 12 + i32.const 13 + call $~lib/rt/tlsf/__alloc + local.set $0 + local.get $4 + i32.const 3 + i32.shl + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $5 + local.get $3 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $7 local.get $2 - local.get $4 - i32.lt_s + i32.const 3 + i32.shl + i32.add + f64.load + local.set $6 + i32.const 3 + global.set $~argumentsLength + local.get $6 + f64.const 2 + f64.gt if - local.get $2 - local.get $3 - i32.add - i32.load8_u + local.get $5 + local.get $1 i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 + i32.shl + i32.add + local.get $6 + f64.store local.get $1 - call_indirect (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $2 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + local.set $1 end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - i32.const -1 - local.set $2 end + local.get $0 + local.get $5 + local.get $1 + i32.const 3 + i32.shl + local.tee $2 + call $~lib/rt/tlsf/__realloc + local.tee $1 + call $~lib/rt/pure/__retain + i32.store + local.get $0 local.get $2 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + i32.const 6 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 3 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 5 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + local.get $0 + call $~lib/typedarray/Float64Array#filter + local.tee $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1312 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 391 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 3 + f64.ne + if + i32.const 0 + i32.const 1312 + i32.const 392 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.ne + if + i32.const 0 + i32.const 1312 + i32.const 393 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.ne + if + i32.const 0 + i32.const 1312 + i32.const 394 + 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 + local.get $1 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Int8Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $3 local.get $0 i32.load offset=8 - i32.const 1 - i32.shr_u local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if - local.get $3 local.get $2 - i32.const 1 - i32.shl + local.get $3 i32.add - i32.load16_s + i32.load8_s i32.const 3 global.set $~argumentsLength local.get $2 local.get $0 local.get $1 call_indirect (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + if + local.get $0 + call $~lib/rt/pure/__release + i32.const 1 + local.set $6 + br $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 + end local.get $2 i32.const 1 i32.add @@ -6871,50 +7140,54 @@ br $for-loop|0 end end - i32.const -1 - local.set $2 + local.get $0 + call $~lib/rt/pure/__release end - local.get $2 + local.get $6 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 65535 + i32.const 255 i32.and - i32.const 4 - i32.eq + i32.eqz ) - (func $~lib/typedarray/Uint16Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $3 local.get $0 i32.load offset=8 - i32.const 1 - i32.shr_u local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if - local.get $3 local.get $2 - i32.const 1 - i32.shl + local.get $3 i32.add - i32.load16_u + 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) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + if + local.get $0 + call $~lib/rt/pure/__release + i32.const 1 + local.set $6 + br $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 + end local.get $2 i32.const 1 i32.add @@ -6922,25 +7195,35 @@ br $for-loop|0 end end - i32.const -1 - local.set $2 + local.get $0 + call $~lib/rt/pure/__release end - local.get $2 + local.get $6 ) - (func $~lib/typedarray/Int32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Int16Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $3 local.get $0 i32.load offset=8 - i32.const 2 + i32.const 1 i32.shr_u local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 loop $for-loop|0 local.get $2 local.get $4 @@ -6948,17 +7231,23 @@ if local.get $3 local.get $2 - i32.const 2 + i32.const 1 i32.shl i32.add - i32.load + i32.load16_s i32.const 3 global.set $~argumentsLength local.get $2 local.get $0 local.get $1 call_indirect (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + if + local.get $0 + call $~lib/rt/pure/__release + i32.const 1 + local.set $6 + br $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 + end local.get $2 i32.const 1 i32.add @@ -6966,30 +7255,34 @@ br $for-loop|0 end end - i32.const -1 - local.set $2 + local.get $0 + call $~lib/rt/pure/__release end - local.get $2 + local.get $6 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 4 - i32.eq + i32.const 65535 + i32.and + i32.eqz ) - (func $~lib/typedarray/Int64Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i64) + (local $5 i32) + (local $6 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $3 local.get $0 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 loop $for-loop|0 local.get $2 local.get $4 @@ -6997,17 +7290,23 @@ if local.get $3 local.get $2 - i32.const 3 + i32.const 1 i32.shl i32.add - i64.load + i32.load16_u i32.const 3 global.set $~argumentsLength local.get $2 local.get $0 local.get $1 - call_indirect (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $0 + call $~lib/rt/pure/__release + i32.const 1 + local.set $6 + br $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 + end local.get $2 i32.const 1 i32.add @@ -7015,22 +7314,25 @@ br $for-loop|0 end end - i32.const -1 - local.set $2 + local.get $0 + call $~lib/rt/pure/__release end - local.get $2 + local.get $6 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i64.const 4 - i64.eq - ) - (func $~lib/typedarray/Float32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Int32Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f32) + (local $5 i32) + (local $6 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $3 local.get $0 @@ -7038,7 +7340,7 @@ i32.const 2 i32.shr_u local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 loop $for-loop|0 local.get $2 local.get $4 @@ -7049,14 +7351,20 @@ i32.const 2 i32.shl i32.add - f32.load + i32.load i32.const 3 global.set $~argumentsLength local.get $2 local.get $0 local.get $1 - call_indirect (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $0 + call $~lib/rt/pure/__release + i32.const 1 + local.set $6 + br $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 + end local.get $2 i32.const 1 i32.add @@ -7064,22 +7372,29 @@ br $for-loop|0 end end - i32.const -1 - local.set $2 + local.get $0 + call $~lib/rt/pure/__release end - local.get $2 + local.get $6 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - f32.const 4 - f32.eq + i32.eqz ) - (func $~lib/typedarray/Float64Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.eq + ) + (func $~lib/typedarray/Int64Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f64) + (local $5 i64) + (local $6 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $3 local.get $0 @@ -7087,7 +7402,7 @@ i32.const 3 i32.shr_u local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 loop $for-loop|0 local.get $2 local.get $4 @@ -7098,14 +7413,20 @@ i32.const 3 i32.shl i32.add - f64.load + i64.load i32.const 3 global.set $~argumentsLength local.get $2 local.get $0 local.get $1 - call_indirect (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + call_indirect (type $i64_i32_i32_=>_i32) + if + local.get $0 + call $~lib/rt/pure/__release + i32.const 1 + local.set $6 + br $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 + end local.get $2 i32.const 1 i32.add @@ -7113,56 +7434,61 @@ br $for-loop|0 end end - i32.const -1 - local.set $2 + local.get $0 + call $~lib/rt/pure/__release end - local.get $2 + local.get $6 ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - f64.const 4 - f64.eq + i64.eqz ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 2 - i32.rem_s - i32.eqz + f32.const 2 + f32.eq ) - (func $~lib/typedarray/Int8Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f32) (local $6 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $3 local.get $0 i32.load offset=8 + i32.const 2 + i32.shr_u local.set $4 - block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 + block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if - local.get $2 local.get $3 + local.get $2 + i32.const 2 + i32.shl i32.add - i32.load8_s + f32.load i32.const 3 global.set $~argumentsLength local.get $2 local.get $0 local.get $1 - call_indirect (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 + call_indirect (type $f32_i32_i32_=>_i32) + if + local.get $0 + call $~lib/rt/pure/__release + i32.const 1 + local.set $6 + br $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 + end local.get $2 i32.const 1 i32.add @@ -7170,47 +7496,62 @@ br $for-loop|0 end end - i32.const 1 - local.set $6 + local.get $0 + call $~lib/rt/pure/__release end local.get $6 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 1 - i32.and - i32.eqz + f32.const 0 + f32.eq ) - (func $~lib/typedarray/Uint8Array#every (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 2 + f64.eq + ) + (func $~lib/typedarray/Float64Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f64) (local $6 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $3 local.get $0 i32.load offset=8 + i32.const 3 + i32.shr_u local.set $4 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 + block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if - local.get $2 local.get $3 + local.get $2 + i32.const 3 + i32.shl i32.add - i32.load8_u + f64.load i32.const 3 global.set $~argumentsLength local.get $2 local.get $0 local.get $1 - call_indirect (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 + call_indirect (type $f64_i32_i32_=>_i32) + if + local.get $0 + call $~lib/rt/pure/__release + i32.const 1 + local.set $6 + br $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 + end local.get $2 i32.const 1 i32.add @@ -7218,55 +7559,50 @@ br $for-loop|0 end end - i32.const 1 - local.set $6 + local.get $0 + call $~lib/rt/pure/__release end local.get $6 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 2 - i32.rem_s - i32.eqz + f64.const 0 + f64.eq ) - (func $~lib/typedarray/Int16Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $3 local.get $0 i32.load offset=8 - i32.const 1 - i32.shr_u local.set $4 - block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if - local.get $3 local.get $2 - i32.const 1 - i32.shl + local.get $3 i32.add - i32.load16_s + i32.load8_s i32.const 3 global.set $~argumentsLength local.get $2 local.get $0 local.get $1 call_indirect (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + end local.get $2 i32.const 1 i32.add @@ -7274,45 +7610,54 @@ br $for-loop|0 end end - i32.const 1 - local.set $6 + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 end - local.get $6 + local.get $2 ) - (func $~lib/typedarray/Uint16Array#every (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 4 + i32.eq + ) + (func $~lib/typedarray/Uint8Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $3 local.get $0 i32.load offset=8 - i32.const 1 - i32.shr_u local.set $4 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if - local.get $3 local.get $2 - i32.const 1 - i32.shl + local.get $3 i32.add - i32.load16_u + 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 - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + end local.get $2 i32.const 1 i32.add @@ -7320,32 +7665,29 @@ br $for-loop|0 end end - i32.const 1 - local.set $6 + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 end - local.get $6 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 2 - i32.rem_s - i32.eqz + local.get $2 ) - (func $~lib/typedarray/Int32Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $3 local.get $0 i32.load offset=8 - i32.const 2 + i32.const 1 i32.shr_u local.set $4 - block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 loop $for-loop|0 local.get $2 local.get $4 @@ -7353,18 +7695,21 @@ if local.get $3 local.get $2 - i32.const 2 + i32.const 1 i32.shl i32.add - i32.load + i32.load16_s i32.const 3 global.set $~argumentsLength local.get $2 local.get $0 local.get $1 call_indirect (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + end local.get $2 i32.const 1 i32.add @@ -7372,32 +7717,36 @@ br $for-loop|0 end end - i32.const 1 - local.set $6 + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 end - local.get $6 + local.get $2 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i64.const 2 - i64.rem_s - i64.eqz - ) - (func $~lib/typedarray/Int64Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + i32.const 65535 + i32.and + i32.const 4 + i32.eq + ) + (func $~lib/typedarray/Uint16Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i64) - (local $6 i32) + (local $5 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $3 local.get $0 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u local.set $4 - block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 loop $for-loop|0 local.get $2 local.get $4 @@ -7405,18 +7754,21 @@ if local.get $3 local.get $2 - i32.const 3 + i32.const 1 i32.shl i32.add - i64.load + i32.load16_u i32.const 3 global.set $~argumentsLength local.get $2 local.get $0 local.get $1 - call_indirect (type $i64_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 + call_indirect (type $i32_i32_i32_=>_i32) + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + end local.get $2 i32.const 1 i32.add @@ -7424,185 +7776,86 @@ br $for-loop|0 end end - i32.const 1 - local.set $6 + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 end - local.get $6 - ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i64.const 2 - i64.rem_u - i64.eqz + local.get $2 ) - (func $~lib/math/NativeMathf.mod (param $0 f32) (result f32) - (local $1 i32) + (func $~lib/typedarray/Int32Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - i32.const 1 - i32.const 0 + (local $5 i32) local.get $0 - i32.reinterpret_f32 - local.tee $1 - i32.const 23 + call $~lib/rt/pure/__retain + local.tee $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 i32.shr_u - i32.const 255 - i32.and - local.tee $2 - i32.const 255 - i32.eq - select - if - local.get $0 - f32.const 2 - f32.mul - local.tee $0 - local.get $0 - f32.div - return - end - local.get $1 - i32.const -2147483648 - i32.and local.set $4 - block $folding-inner0 - local.get $1 - i32.const 1 - i32.shl - local.tee $3 - i32.const -2147483648 - i32.le_u - if - local.get $3 - i32.const -2147483648 - i32.eq - br_if $folding-inner0 - local.get $0 - return - end - local.get $2 - if (result i32) - local.get $1 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - else - local.get $1 - i32.const 1 - local.get $2 - local.get $1 - i32.const 9 - i32.shl - i32.clz - i32.sub - local.tee $2 - i32.sub - i32.shl - end - local.set $1 - loop $while-continue|0 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + loop $for-loop|0 local.get $2 - i32.const 128 - i32.gt_s + local.get $4 + i32.lt_s if + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 local.get $1 - i32.const 8388608 - i32.ge_u + call_indirect (type $i32_i32_i32_=>_i32) if - local.get $1 - i32.const 8388608 - i32.eq - br_if $folding-inner0 - local.get $1 - i32.const 8388608 - i32.sub - local.set $1 + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 end - local.get $1 - i32.const 1 - i32.shl - local.set $1 local.get $2 i32.const 1 - i32.sub + i32.add local.set $2 - br $while-continue|0 + br $for-loop|0 end end - local.get $1 - i32.const 8388608 - i32.ge_u - if - local.get $1 - i32.const 8388608 - i32.eq - br_if $folding-inner0 - local.get $1 - i32.const 8388608 - i32.sub - local.set $1 - end - local.get $1 - local.get $1 - i32.const 8 - i32.shl - i32.clz - local.tee $3 - i32.shl - local.set $1 - local.get $2 - local.get $3 - i32.sub - local.tee $2 - i32.const 0 - i32.gt_s - if (result i32) - local.get $1 - i32.const 8388608 - i32.sub - local.get $2 - i32.const 23 - i32.shl - i32.or - else - local.get $1 - i32.const 1 - local.get $2 - i32.sub - i32.shr_u - end - local.get $4 - i32.or - f32.reinterpret_i32 - return + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 end - f32.const 0 - local.get $0 - f32.mul + local.get $2 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - call $~lib/math/NativeMathf.mod - f32.const 0 - f32.eq + i32.const 4 + i32.eq ) - (func $~lib/typedarray/Float32Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f32) - (local $6 i32) + (local $5 i64) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $3 local.get $0 i32.load offset=8 - i32.const 2 + i32.const 3 i32.shr_u local.set $4 - block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 loop $for-loop|0 local.get $2 local.get $4 @@ -7610,18 +7863,21 @@ if local.get $3 local.get $2 - i32.const 2 + i32.const 3 i32.shl i32.add - f32.load + i64.load i32.const 3 global.set $~argumentsLength local.get $2 local.get $0 local.get $1 - call_indirect (type $f32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 + call_indirect (type $i64_i32_i32_=>_i32) + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + end local.get $2 i32.const 1 i32.add @@ -7629,178 +7885,83 @@ br $for-loop|0 end end - i32.const 1 - local.set $6 + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 end - local.get $6 + local.get $2 ) - (func $~lib/math/NativeMath.mod (param $0 f64) (result f64) - (local $1 i64) - (local $2 i64) - (local $3 i64) - (local $4 i64) - i32.const 1 - i32.const 0 + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i64.reinterpret_f64 - local.tee $1 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.tee $2 - i64.const 2047 + i64.const 4 i64.eq - select - if - local.get $0 - f64.const 2 - f64.mul - local.tee $0 - local.get $0 - f64.div - return - end - local.get $1 - i64.const 63 - i64.shr_u + ) + (func $~lib/typedarray/Float32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u local.set $4 - block $folding-inner0 - local.get $1 - i64.const 1 - i64.shl - local.tee $3 - i64.const -9223372036854775808 - i64.le_u - if - local.get $3 - i64.const -9223372036854775808 - i64.eq - br_if $folding-inner0 - local.get $0 - return - end - local.get $2 - i64.eqz - if (result i64) - local.get $1 - i64.const 0 - local.get $2 - local.get $1 - i64.const 12 - i64.shl - i64.clz - i64.sub - local.tee $2 - i64.sub - i64.const 1 - i64.add - i64.shl - else - local.get $1 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or - end - local.set $1 - loop $while-continue|0 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + loop $for-loop|0 local.get $2 - i64.const 1024 - i64.gt_s + local.get $4 + i32.lt_s if + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 local.get $1 - i64.const 4503599627370496 - i64.ge_u + call_indirect (type $f32_i32_i32_=>_i32) if - local.get $1 - i64.const 4503599627370496 - i64.eq - br_if $folding-inner0 - local.get $1 - i64.const 4503599627370496 - i64.sub - local.set $1 + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 end - local.get $1 - i64.const 1 - i64.shl - local.set $1 local.get $2 - i64.const 1 - i64.sub + i32.const 1 + i32.add local.set $2 - br $while-continue|0 + br $for-loop|0 end end - local.get $1 - i64.const 4503599627370496 - i64.ge_u - if - local.get $1 - i64.const 4503599627370496 - i64.eq - br_if $folding-inner0 - local.get $1 - i64.const 4503599627370496 - i64.sub - local.set $1 - end - local.get $1 - local.get $1 - i64.const 11 - i64.shl - i64.clz - local.tee $3 - i64.shl - local.set $1 - local.get $2 - local.get $3 - i64.sub - local.tee $2 - i64.const 0 - i64.gt_s - if (result i64) - local.get $1 - i64.const 4503599627370496 - i64.sub - local.get $2 - i64.const 52 - i64.shl - i64.or - else - local.get $1 - i64.const 0 - local.get $2 - i64.sub - i64.const 1 - i64.add - i64.shr_u - end - local.get $4 - i64.const 63 - i64.shl - i64.or - f64.reinterpret_i64 - return + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 end - f64.const 0 - local.get $0 - f64.mul + local.get $2 ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - call $~lib/math/NativeMath.mod - f64.const 0 - f64.eq + f32.const 4 + f32.eq ) - (func $~lib/typedarray/Float64Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) - (local $6 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $3 local.get $0 @@ -7808,7 +7969,7 @@ i32.const 3 i32.shr_u local.set $4 - block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 loop $for-loop|0 local.get $2 local.get $4 @@ -7826,8 +7987,11 @@ local.get $0 local.get $1 call_indirect (type $f64_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + end local.get $2 i32.const 1 i32.add @@ -7835,1333 +7999,1244 @@ br $for-loop|0 end end - i32.const 1 - local.set $6 + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 end - local.get $6 + local.get $2 ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 255 - i32.and - i32.const 2704 - local.get $1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 490 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 491 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + f64.const 4 + f64.eq + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 492 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount + call $~lib/rt/pure/__retain + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 2 + i32.rem_s + i32.eqz + local.set $0 + call $~lib/rt/pure/__release + local.get $0 ) - (func $~lib/typedarray/Uint8Array#forEach (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int8Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $3 local.get $0 i32.load offset=8 local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - i32.load8_u - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - call_indirect (type $i32_i32_i32_=>_none) + block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 + loop $for-loop|0 local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + local.get $4 + i32.lt_s + if + local.get $2 + local.get $3 + i32.add + i32.load8_s + 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 + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 + 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/__release + i32.const 1 + local.set $6 end + local.get $6 ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.const 65535 - i32.and - i32.const 2704 - local.get $1 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 490 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 491 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 492 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) - i32.const 2704 - local.get $1 - call $~lib/array/Array#__get + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 490 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 491 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 492 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount + i32.and + i32.eqz ) - (func $~lib/typedarray/Int32Array#forEach (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $3 local.get $0 i32.load offset=8 - i32.const 2 - i32.shr_u local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - call_indirect (type $i32_i32_i32_=>_none) + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 + loop $for-loop|0 local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + local.get $4 + i32.lt_s + if + local.get $2 + local.get $3 + 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 + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 + 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/__release + i32.const 1 + local.set $6 end + local.get $6 ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) - local.get $0 - i32.const 2704 - local.get $1 - call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne - if - i32.const 0 - i32.const 1312 - i32.const 490 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 491 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 492 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount + call $~lib/rt/pure/__retain + local.get $0 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 2 + i32.rem_s + i32.eqz + local.set $0 + call $~lib/rt/pure/__release + local.get $0 ) - (func $~lib/typedarray/Int64Array#forEach (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int16Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i64) + (local $5 i32) + (local $6 i32) local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=4 local.set $3 local.get $0 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - call_indirect (type $i64_i32_i32_=>_none) + block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 + loop $for-loop|0 local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_s + 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 + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 + 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/__release + i32.const 1 + local.set $6 end + local.get $6 ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) - local.get $0 - i32.const 2704 - local.get $1 - call $~lib/array/Array#__get - f32.convert_i32_s - f32.ne - if - i32.const 0 - i32.const 1312 - i32.const 490 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 491 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 492 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount - ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) - local.get $0 - i32.const 2704 - local.get $1 - call $~lib/array/Array#__get - f64.convert_i32_s - f64.ne - if - i32.const 0 - i32.const 1312 - i32.const 490 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.get $std/typedarray/forEachCallCount - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 491 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 492 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount - ) - (func $~lib/typedarray/Int8Array#reverse (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/typedarray/Uint16Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) local.get $0 call $~lib/rt/pure/__retain - local.tee $3 + local.tee $0 i32.load offset=4 - local.set $4 - local.get $3 + local.set $3 + local.get $0 i32.load offset=8 i32.const 1 - i32.sub - local.set $0 - loop $for-loop|0 - local.get $1 - local.get $0 - i32.lt_u - if - local.get $1 - local.get $4 - i32.add - local.tee $2 - i32.load8_s - local.set $5 + i32.shr_u + local.set $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 + loop $for-loop|0 local.get $2 - local.get $0 local.get $4 - i32.add - local.tee $2 - i32.load8_s - i32.store8 - local.get $2 - local.get $5 - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + call_indirect (type $i32_i32_i32_=>_i32) + i32.eqz + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 + 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/__release + i32.const 1 + local.set $6 end - local.get $3 + local.get $6 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/rt/pure/__retain + local.get $0 + i32.const 2 + i32.rem_s + i32.eqz + local.set $0 + call $~lib/rt/pure/__release + local.get $0 + ) + (func $~lib/typedarray/Int32Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - i32.const 2812 - i32.load - local.tee $1 - call $~lib/typedarray/Int8Array#constructor - local.tee $4 - local.set $2 - local.get $1 - call $~lib/typedarray/Int8Array#constructor - local.tee $5 + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.load offset=4 local.set $3 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 + loop $for-loop|0 local.get $2 - local.get $0 - i32.const 2800 - local.get $0 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $3 - local.get $0 - i32.const 2800 - local.get $0 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $2 - call $~lib/typedarray/Int8Array#reverse - call $~lib/rt/pure/__release - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $2 - local.get $0 - call $~lib/typedarray/Int8Array#__get - i32.const 2800 - local.get $1 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.ne + local.get $4 + i32.lt_s if - i32.const 0 - i32.const 1312 - i32.const 524 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + call_indirect (type $i32_i32_i32_=>_i32) + i32.eqz + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 end + local.get $0 + call $~lib/rt/pure/__release + i32.const 1 + local.set $6 end - local.get $3 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int8Array#subarray - local.tee $1 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 529 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 7 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 530 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 6 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 531 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 3 - call $~lib/typedarray/Int8Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 532 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release + local.get $6 + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/rt/pure/__retain local.get $0 + i64.const 2 + i64.rem_s + i64.eqz + local.set $2 call $~lib/rt/pure/__release + local.get $2 ) - (func $~lib/typedarray/Uint8Array#reverse (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/typedarray/Int64Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 i64) + (local $6 i32) local.get $0 call $~lib/rt/pure/__retain - local.tee $3 + local.tee $0 i32.load offset=4 - local.set $4 - local.get $3 + local.set $3 + local.get $0 i32.load offset=8 - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|0 - local.get $1 - local.get $0 - i32.lt_u - if - local.get $1 - local.get $4 - i32.add - local.tee $2 - i32.load8_u - local.set $5 + i32.const 3 + i32.shr_u + local.set $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 + loop $for-loop|0 local.get $2 - local.get $0 local.get $4 - i32.add - local.tee $2 - i32.load8_u - i32.store8 - local.get $2 - local.get $5 - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + call_indirect (type $i64_i32_i32_=>_i32) + i32.eqz + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 + 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/__release + i32.const 1 + local.set $6 end - local.get $3 + local.get $6 ) - (func $~lib/typedarray/Uint8Array#subarray (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/rt/pure/__retain + local.get $0 + i64.const 2 + i64.rem_u + i64.eqz + local.set $2 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/math/NativeMathf.mod (param $0 f32) (result f32) + (local $1 i32) (local $2 i32) (local $3 i32) - i32.const 4 + (local $4 i32) + i32.const 1 + i32.const 0 local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 4 - local.get $2 - i32.lt_s - select - local.set $3 + i32.reinterpret_f32 + local.tee $1 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.tee $2 + i32.const 255 + i32.eq + select + if + local.get $0 + f32.const 2 + f32.mul + local.tee $0 + local.get $0 + f32.div + return + end local.get $1 - i32.const 0 - i32.lt_s - if (result i32) + i32.const -2147483648 + i32.and + local.set $4 + block $folding-inner0 local.get $1 + i32.const 1 + i32.shl + local.tee $3 + i32.const -2147483648 + i32.le_u + if + local.get $3 + i32.const -2147483648 + i32.eq + br_if $folding-inner0 + local.get $0 + return + end local.get $2 - i32.add - local.tee $1 - i32.const 0 + if (result i32) + local.get $1 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + else + local.get $1 + i32.const 1 + local.get $2 + local.get $1 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.tee $2 + i32.sub + i32.shl + end + local.set $1 + loop $while-continue|0 + local.get $2 + i32.const 128 + i32.gt_s + if + local.get $1 + i32.const 8388608 + i32.ge_u + if + local.get $1 + i32.const 8388608 + i32.eq + br_if $folding-inner0 + local.get $1 + i32.const 8388608 + i32.sub + local.set $1 + end + local.get $1 + i32.const 1 + i32.shl + local.set $1 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end local.get $1 - i32.const 0 - i32.gt_s - select - else + i32.const 8388608 + i32.ge_u + if + local.get $1 + i32.const 8388608 + i32.eq + br_if $folding-inner0 + local.get $1 + i32.const 8388608 + i32.sub + local.set $1 + end local.get $1 - local.get $2 local.get $1 + i32.const 8 + i32.shl + i32.clz + local.tee $3 + i32.shl + local.set $1 local.get $2 - i32.lt_s - select + local.get $3 + i32.sub + local.tee $2 + i32.const 0 + i32.gt_s + if (result i32) + local.get $1 + i32.const 8388608 + i32.sub + local.get $2 + i32.const 23 + i32.shl + i32.or + else + local.get $1 + i32.const 1 + local.get $2 + i32.sub + i32.shr_u + end + local.get $4 + i32.or + f32.reinterpret_i32 + return end - local.set $1 - i32.const 12 - i32.const 4 - call $~lib/rt/tlsf/__alloc - local.tee $2 + f32.const 0 local.get $0 - i32.load - call $~lib/rt/pure/__retain - i32.store + f32.mul + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $2 - local.get $3 + call $~lib/rt/pure/__retain local.get $0 - i32.load offset=4 - i32.add - i32.store offset=4 - local.get $2 - local.get $1 - local.get $3 - local.get $1 - local.get $3 - i32.gt_s - select - local.get $3 - i32.sub - i32.store offset=8 + call $~lib/math/NativeMathf.mod + f32.const 0 + f32.eq + local.set $2 + call $~lib/rt/pure/__release local.get $2 - call $~lib/rt/pure/__retain ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Float32Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - i32.const 2812 - i32.load - local.tee $1 - call $~lib/typedarray/Uint8Array#constructor - local.tee $4 - local.set $2 - local.get $1 - call $~lib/typedarray/Uint8Array#constructor - local.tee $5 + (local $5 f32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.load offset=4 local.set $3 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 + loop $for-loop|0 local.get $2 - local.get $0 - i32.const 2800 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $3 - local.get $0 - i32.const 2800 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + call_indirect (type $f32_i32_i32_=>_i32) + i32.eqz + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 + 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/__release + i32.const 1 + local.set $6 end - local.get $2 - call $~lib/typedarray/Uint8Array#reverse - call $~lib/rt/pure/__release + local.get $6 + ) + (func $~lib/math/NativeMath.mod (param $0 f64) (result f64) + (local $1 i64) + (local $2 i64) + (local $3 i64) + (local $4 i64) + i32.const 1 i32.const 0 - local.set $0 - loop $for-loop|1 + local.get $0 + i64.reinterpret_f64 + local.tee $1 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $2 + i64.const 2047 + i64.eq + select + if local.get $0 + f64.const 2 + f64.mul + local.tee $0 + local.get $0 + f64.div + return + end + local.get $1 + i64.const 63 + i64.shr_u + local.set $4 + block $folding-inner0 local.get $1 - i32.lt_s + i64.const 1 + i64.shl + local.tee $3 + i64.const -9223372036854775808 + i64.le_u if - local.get $2 + local.get $3 + i64.const -9223372036854775808 + i64.eq + br_if $folding-inner0 local.get $0 - call $~lib/typedarray/Uint8Array#__get - i32.const 2800 + return + end + local.get $2 + i64.eqz + if (result i64) local.get $1 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne + i64.const 0 + local.get $2 + local.get $1 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.tee $2 + i64.sub + i64.const 1 + i64.add + i64.shl + else + local.get $1 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + end + local.set $1 + loop $while-continue|0 + local.get $2 + i64.const 1024 + i64.gt_s if - i32.const 0 - i32.const 1312 - i32.const 524 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + i64.const 4503599627370496 + i64.ge_u + if + local.get $1 + i64.const 4503599627370496 + i64.eq + br_if $folding-inner0 + local.get $1 + i64.const 4503599627370496 + i64.sub + local.set $1 + end + local.get $1 + i64.const 1 + i64.shl + local.set $1 + local.get $2 + i64.const 1 + i64.sub + local.set $2 + br $while-continue|0 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 end + local.get $1 + i64.const 4503599627370496 + i64.ge_u + if + local.get $1 + i64.const 4503599627370496 + i64.eq + br_if $folding-inner0 + local.get $1 + i64.const 4503599627370496 + i64.sub + local.set $1 + end + local.get $1 + local.get $1 + i64.const 11 + i64.shl + i64.clz + local.tee $3 + i64.shl + local.set $1 + local.get $2 + local.get $3 + i64.sub + local.tee $2 + i64.const 0 + i64.gt_s + if (result i64) + local.get $1 + i64.const 4503599627370496 + i64.sub + local.get $2 + i64.const 52 + i64.shl + i64.or + else + local.get $1 + i64.const 0 + local.get $2 + i64.sub + i64.const 1 + i64.add + i64.shr_u + end + local.get $4 + i64.const 63 + i64.shl + i64.or + f64.reinterpret_i64 + return end - local.get $3 - i32.const 8 - call $~lib/typedarray/Uint8Array#subarray - local.tee $1 - call $~lib/typedarray/Uint8Array#reverse - local.tee $0 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 529 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 7 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 530 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 6 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 531 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + f64.const 0 local.get $0 - i32.const 3 - call $~lib/typedarray/Uint8Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 532 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release + f64.mul + ) + (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $2 + call $~lib/rt/pure/__retain local.get $0 + call $~lib/math/NativeMath.mod + f64.const 0 + f64.eq + local.set $2 call $~lib/rt/pure/__release + local.get $2 ) - (func $~lib/typedarray/Uint8ClampedArray#subarray (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - i32.const 4 + (local $4 i32) + (local $5 f64) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.load offset=4 + local.set $3 local.get $0 i32.load offset=8 - local.tee $2 - i32.const 4 - local.get $2 - i32.lt_s - select - local.set $3 + i32.const 3 + i32.shr_u + local.set $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + call_indirect (type $f64_i32_i32_=>_i32) + i32.eqz + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + 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/__release + i32.const 1 + local.set $6 + end + local.get $6 + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 255 + i32.and + i32.const 2704 local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $2 - i32.add - local.tee $1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.ne + if i32.const 0 - local.get $1 + i32.const 1312 + i32.const 490 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.ne + if i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $2 - local.get $1 - local.get $2 - i32.lt_s - select + i32.const 1312 + i32.const 491 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.set $1 - i32.const 12 - i32.const 5 - call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $0 - i32.load - call $~lib/rt/pure/__retain - i32.store local.get $2 - local.get $3 - local.get $0 - i32.load offset=4 + global.get $std/typedarray/forEachSelf + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 492 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 i32.add - i32.store offset=4 - local.get $2 - local.get $1 - local.get $3 - local.get $1 - local.get $3 - i32.gt_s - select - local.get $3 - i32.sub - i32.store offset=8 + global.set $std/typedarray/forEachCallCount local.get $2 - call $~lib/rt/pure/__retain + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint8Array#forEach (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - i32.const 2812 - i32.load - local.tee $1 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 - local.set $2 - local.get $1 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $5 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.load offset=4 local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 loop $for-loop|0 - local.get $0 - local.get $1 + local.get $2 + local.get $4 i32.lt_s if local.get $2 - local.get $0 - i32.const 2800 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set local.get $3 - local.get $0 - i32.const 2800 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 1 i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $2 - call $~lib/typedarray/Uint8Array#reverse - call $~lib/rt/pure/__release - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $1 - i32.lt_s - if + i32.load8_u + i32.const 3 + global.set $~argumentsLength local.get $2 local.get $0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 2800 local.get $1 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 524 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 + call_indirect (type $i32_i32_i32_=>_none) + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $2 + br $for-loop|0 end end - local.get $3 - i32.const 8 - call $~lib/typedarray/Uint8ClampedArray#subarray - local.tee $1 - call $~lib/typedarray/Uint8Array#reverse - local.tee $0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 8 + local.get $0 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 65535 + i32.and + i32.const 2704 + local.get $1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and i32.ne if i32.const 0 i32.const 1312 - i32.const 529 - i32.const 3 + i32.const 490 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 7 + local.get $1 + global.get $std/typedarray/forEachCallCount i32.ne if i32.const 0 i32.const 1312 - i32.const 530 - i32.const 3 + i32.const 491 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 6 + local.get $2 + global.get $std/typedarray/forEachSelf i32.ne if i32.const 0 i32.const 1312 - i32.const 531 - i32.const 3 + i32.const 492 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 5 + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + i32.const 2704 + local.get $1 + call $~lib/array/Array#__get + local.get $0 i32.ne if i32.const 0 i32.const 1312 - i32.const 532 - i32.const 3 + i32.const 490 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release local.get $1 - call $~lib/rt/pure/__release - local.get $0 + global.get $std/typedarray/forEachCallCount + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 491 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + global.get $std/typedarray/forEachSelf + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 492 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#reverse (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/typedarray/Int32Array#forEach (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) local.get $0 call $~lib/rt/pure/__retain - local.tee $3 + local.tee $0 i32.load offset=4 - local.set $4 - local.get $3 + local.set $3 + local.get $0 i32.load offset=8 - i32.const 1 + i32.const 2 i32.shr_u - i32.const 1 - i32.sub - local.set $0 + local.set $4 loop $for-loop|0 - local.get $1 - local.get $0 - i32.lt_u + local.get $2 + local.get $4 + i32.lt_s if - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $2 - i32.load16_s - local.set $5 + local.get $3 local.get $2 - local.get $4 - local.get $0 - i32.const 1 + i32.const 2 i32.shl i32.add - local.tee $2 - i32.load16_s - i32.store16 + i32.load + i32.const 3 + global.set $~argumentsLength local.get $2 - local.get $5 - i32.store16 + local.get $0 local.get $1 + call_indirect (type $i32_i32_i32_=>_none) + local.get $2 i32.const 1 i32.add - local.set $1 - local.get $0 - i32.const 1 - i32.sub - local.set $0 + local.set $2 br $for-loop|0 end end - local.get $3 - ) - (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - i32.const 4 local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 4 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) local.get $2 - i32.lt_s - select - local.set $3 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 2704 local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $2 - i32.add - local.tee $1 + call $~lib/array/Array#__get + i64.extend_i32_s + i64.ne + if i32.const 0 - local.get $1 + i32.const 1312 + i32.const 490 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount + i32.ne + if i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $2 - local.get $1 - local.get $2 - i32.lt_s - select + i32.const 1312 + i32.const 491 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.set $1 - i32.const 12 - i32.const 6 - call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $0 - i32.load - call $~lib/rt/pure/__retain - i32.store local.get $2 - local.get $0 - i32.load offset=4 - local.get $3 + global.get $std/typedarray/forEachSelf + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 492 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount i32.const 1 - i32.shl i32.add - i32.store offset=4 - local.get $2 - local.get $1 - local.get $3 - local.get $1 - local.get $3 - i32.gt_s - select - local.get $3 - i32.sub - i32.const 1 - i32.shl - i32.store offset=8 + global.set $std/typedarray/forEachCallCount local.get $2 - call $~lib/rt/pure/__retain + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Int64Array#forEach (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - i32.const 2812 - i32.load - local.tee $1 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 - local.set $2 - local.get $1 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 + (local $5 i64) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.load offset=4 local.set $3 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $4 loop $for-loop|0 - local.get $0 - local.get $1 + local.get $2 + local.get $4 i32.lt_s if - local.get $2 - local.get $0 - i32.const 2800 - local.get $0 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set local.get $3 - local.get $0 - i32.const 2800 - local.get $0 - call $~lib/array/Array#__get - i32.const 16 + local.get $2 + i32.const 3 i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $0 - i32.const 1 i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $2 - call $~lib/typedarray/Int16Array#reverse - call $~lib/rt/pure/__release - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $1 - i32.lt_s - if + i64.load + i32.const 3 + global.set $~argumentsLength local.get $2 local.get $0 - call $~lib/typedarray/Int16Array#__get - i32.const 2800 local.get $1 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 524 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 + call_indirect (type $i64_i32_i32_=>_none) + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $2 + br $for-loop|0 end end - local.get $3 - i32.const 8 - call $~lib/typedarray/Int16Array#subarray - local.tee $1 - call $~lib/typedarray/Int16Array#reverse - local.tee $0 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 8 + local.get $0 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + i32.const 2704 + local.get $1 + call $~lib/array/Array#__get + f32.convert_i32_s + f32.ne + if + i32.const 0 + i32.const 1312 + i32.const 490 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount i32.ne if i32.const 0 i32.const 1312 - i32.const 529 - i32.const 3 + i32.const 491 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 7 + local.get $2 + global.get $std/typedarray/forEachSelf i32.ne if i32.const 0 i32.const 1312 - i32.const 530 - i32.const 3 + i32.const 492 + i32.const 5 call $~lib/builtins/abort unreachable end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + local.get $2 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 local.get $0 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 6 + i32.const 2704 + local.get $1 + call $~lib/array/Array#__get + f64.convert_i32_s + f64.ne + if + i32.const 0 + i32.const 1312 + i32.const 490 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.get $std/typedarray/forEachCallCount i32.ne if i32.const 0 i32.const 1312 - i32.const 531 - i32.const 3 + i32.const 491 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 3 - call $~lib/typedarray/Int16Array#__get - i32.const 5 + local.get $2 + global.get $std/typedarray/forEachSelf i32.ne if i32.const 0 i32.const 1312 - i32.const 532 - i32.const 3 + i32.const 492 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $0 + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount + local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#reverse (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#reverse (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9175,8 +9250,6 @@ local.get $3 i32.load offset=8 i32.const 1 - i32.shr_u - i32.const 1 i32.sub local.set $0 loop $for-loop|0 @@ -9184,26 +9257,22 @@ local.get $0 i32.lt_u if - local.get $4 local.get $1 - i32.const 1 - i32.shl + local.get $4 i32.add local.tee $2 - i32.load16_u + i32.load8_s local.set $5 local.get $2 - local.get $4 local.get $0 - i32.const 1 - i32.shl + local.get $4 i32.add local.tee $2 - i32.load16_u - i32.store16 + i32.load8_s + i32.store8 local.get $2 local.get $5 - i32.store16 + i32.store8 local.get $1 i32.const 1 i32.add @@ -9217,74 +9286,7 @@ end local.get $3 ) - (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - i32.const 4 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 4 - local.get $2 - i32.lt_s - select - local.set $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $2 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $2 - local.get $1 - local.get $2 - i32.lt_s - select - end - local.set $1 - i32.const 12 - i32.const 7 - call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $0 - i32.load - call $~lib/rt/pure/__retain - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.store offset=4 - local.get $2 - local.get $1 - local.get $3 - local.get $1 - local.get $3 - i32.gt_s - select - local.get $3 - i32.sub - i32.const 1 - i32.shl - i32.store offset=8 - local.get $2 - call $~lib/rt/pure/__retain - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> (local $0 i32) (local $1 i32) (local $2 i32) @@ -9294,12 +9296,14 @@ i32.const 2812 i32.load local.tee $1 - call $~lib/typedarray/Uint16Array#constructor + call $~lib/typedarray/Int8Array#constructor local.tee $4 + call $~lib/rt/pure/__retain local.set $2 local.get $1 - call $~lib/typedarray/Uint16Array#constructor + call $~lib/typedarray/Int8Array#constructor local.tee $5 + call $~lib/rt/pure/__retain local.set $3 loop $for-loop|0 local.get $0 @@ -9311,17 +9315,21 @@ i32.const 2800 local.get $0 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set local.get $3 local.get $0 i32.const 2800 local.get $0 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 1 i32.add @@ -9330,7 +9338,7 @@ end end local.get $2 - call $~lib/typedarray/Uint16Array#reverse + call $~lib/typedarray/Int8Array#reverse call $~lib/rt/pure/__release i32.const 0 local.set $0 @@ -9341,7 +9349,7 @@ if local.get $2 local.get $0 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 2800 local.get $1 i32.const 1 @@ -9349,8 +9357,10 @@ local.get $0 i32.sub call $~lib/array/Array#__get - i32.const 65535 - i32.and + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s i32.ne if i32.const 0 @@ -9368,13 +9378,14 @@ end end local.get $3 + i32.const 4 i32.const 8 - call $~lib/typedarray/Uint16Array#subarray + call $~lib/typedarray/Int8Array#subarray local.tee $1 - call $~lib/typedarray/Uint16Array#reverse + call $~lib/typedarray/Int8Array#reverse local.tee $0 i32.const 0 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 8 i32.ne if @@ -9387,7 +9398,7 @@ end local.get $0 i32.const 1 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 7 i32.ne if @@ -9400,7 +9411,7 @@ end local.get $0 i32.const 2 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 6 i32.ne if @@ -9413,7 +9424,7 @@ end local.get $0 i32.const 3 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 5 i32.ne if @@ -9430,10 +9441,16 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release + i32.const 2800 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#reverse (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#reverse (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9446,8 +9463,6 @@ local.set $4 local.get $3 i32.load offset=8 - i32.const 2 - i32.shr_u i32.const 1 i32.sub local.set $0 @@ -9456,26 +9471,22 @@ local.get $0 i32.lt_u if - local.get $4 local.get $1 - i32.const 2 - i32.shl + local.get $4 i32.add local.tee $2 - i32.load + i32.load8_u local.set $5 local.get $2 - local.get $4 local.get $0 - i32.const 2 - i32.shl + local.get $4 i32.add local.tee $2 - i32.load - i32.store + i32.load8_u + i32.store8 local.get $2 local.get $5 - i32.store + i32.store8 local.get $1 i32.const 1 i32.add @@ -9489,7 +9500,72 @@ end local.get $3 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> + (func $~lib/typedarray/Uint8Array#subarray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + i32.const 4 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 + i32.load offset=8 + local.tee $0 + i32.const 4 + local.get $0 + i32.lt_s + select + local.set $2 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $0 + local.get $1 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $0 + local.get $1 + local.get $0 + i32.lt_s + select + end + local.set $0 + i32.const 12 + i32.const 4 + call $~lib/rt/tlsf/__alloc + local.tee $1 + local.get $3 + i32.load + call $~lib/rt/pure/__retain + i32.store + local.get $1 + local.get $2 + local.get $3 + i32.load offset=4 + i32.add + i32.store offset=4 + local.get $1 + local.get $0 + local.get $2 + local.get $0 + local.get $2 + i32.gt_s + select + local.get $2 + i32.sub + i32.store offset=8 + local.get $1 + call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> (local $0 i32) (local $1 i32) (local $2 i32) @@ -9499,12 +9575,14 @@ i32.const 2812 i32.load local.tee $1 - call $~lib/typedarray/Int32Array#constructor + call $~lib/typedarray/Uint8Array#constructor local.tee $4 + call $~lib/rt/pure/__retain local.set $2 local.get $1 - call $~lib/typedarray/Int32Array#constructor + call $~lib/typedarray/Uint8Array#constructor local.tee $5 + call $~lib/rt/pure/__retain local.set $3 loop $for-loop|0 local.get $0 @@ -9516,13 +9594,17 @@ i32.const 2800 local.get $0 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set local.get $3 local.get $0 i32.const 2800 local.get $0 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set local.get $0 i32.const 1 i32.add @@ -9531,7 +9613,7 @@ end end local.get $2 - call $~lib/typedarray/Int32Array#reverse + call $~lib/typedarray/Uint8Array#reverse call $~lib/rt/pure/__release i32.const 0 local.set $0 @@ -9542,7 +9624,7 @@ if local.get $2 local.get $0 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 2800 local.get $1 i32.const 1 @@ -9550,6 +9632,8 @@ local.get $0 i32.sub call $~lib/array/Array#__get + i32.const 255 + i32.and i32.ne if i32.const 0 @@ -9567,14 +9651,13 @@ end end local.get $3 - i32.const 4 i32.const 8 - call $~lib/typedarray/Int32Array#subarray + call $~lib/typedarray/Uint8Array#subarray local.tee $1 - call $~lib/typedarray/Int32Array#reverse + call $~lib/typedarray/Uint8Array#reverse local.tee $0 i32.const 0 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 8 i32.ne if @@ -9587,7 +9670,7 @@ end local.get $0 i32.const 1 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 7 i32.ne if @@ -9600,7 +9683,7 @@ end local.get $0 i32.const 2 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 6 i32.ne if @@ -9613,7 +9696,7 @@ end local.get $0 i32.const 3 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 5 i32.ne if @@ -9630,77 +9713,81 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release + i32.const 2800 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint32Array#subarray (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 4 local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 + local.tee $0 i32.const 4 - local.get $2 + local.get $0 i32.lt_s select - local.set $3 + local.set $2 local.get $1 i32.const 0 i32.lt_s if (result i32) + local.get $0 local.get $1 - local.get $2 i32.add - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select else local.get $1 - local.get $2 + local.get $0 local.get $1 - local.get $2 + local.get $0 i32.lt_s select end - local.set $1 + local.set $0 i32.const 12 - i32.const 9 + i32.const 5 call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $0 + local.tee $1 + local.get $3 i32.load call $~lib/rt/pure/__retain i32.store + local.get $1 local.get $2 - local.get $0 - i32.load offset=4 local.get $3 - i32.const 2 - i32.shl + i32.load offset=4 i32.add i32.store offset=4 - local.get $2 - local.get $1 - local.get $3 local.get $1 - local.get $3 + local.get $0 + local.get $2 + local.get $0 + local.get $2 i32.gt_s select - local.get $3 + local.get $2 i32.sub - i32.const 2 - i32.shl i32.store offset=8 - local.get $2 + local.get $1 call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> (local $0 i32) (local $1 i32) (local $2 i32) @@ -9710,12 +9797,14 @@ i32.const 2812 i32.load local.tee $1 - call $~lib/typedarray/Uint32Array#constructor + call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $4 + call $~lib/rt/pure/__retain local.set $2 local.get $1 - call $~lib/typedarray/Uint32Array#constructor + call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $5 + call $~lib/rt/pure/__retain local.set $3 loop $for-loop|0 local.get $0 @@ -9727,13 +9816,17 @@ i32.const 2800 local.get $0 call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set local.get $3 local.get $0 i32.const 2800 local.get $0 call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 1 i32.add @@ -9742,7 +9835,7 @@ end end local.get $2 - call $~lib/typedarray/Int32Array#reverse + call $~lib/typedarray/Uint8Array#reverse call $~lib/rt/pure/__release i32.const 0 local.set $0 @@ -9753,7 +9846,7 @@ if local.get $2 local.get $0 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2800 local.get $1 i32.const 1 @@ -9761,6 +9854,8 @@ local.get $0 i32.sub call $~lib/array/Array#__get + i32.const 255 + i32.and i32.ne if i32.const 0 @@ -9779,12 +9874,12 @@ end local.get $3 i32.const 8 - call $~lib/typedarray/Uint32Array#subarray + call $~lib/typedarray/Uint8ClampedArray#subarray local.tee $1 - call $~lib/typedarray/Int32Array#reverse + call $~lib/typedarray/Uint8Array#reverse local.tee $0 i32.const 0 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 8 i32.ne if @@ -9797,7 +9892,7 @@ end local.get $0 i32.const 1 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 7 i32.ne if @@ -9810,7 +9905,7 @@ end local.get $0 i32.const 2 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 6 i32.ne if @@ -9823,7 +9918,7 @@ end local.get $0 i32.const 3 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 5 i32.ne if @@ -9840,15 +9935,21 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release + i32.const 2800 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#reverse (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#reverse (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i64) + (local $5 i32) local.get $0 call $~lib/rt/pure/__retain local.tee $3 @@ -9856,7 +9957,7 @@ local.set $4 local.get $3 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u i32.const 1 i32.sub @@ -9868,24 +9969,24 @@ if local.get $4 local.get $1 - i32.const 3 + i32.const 1 i32.shl i32.add local.tee $2 - i64.load + i32.load16_s local.set $5 local.get $2 local.get $4 local.get $0 - i32.const 3 + i32.const 1 i32.shl i32.add local.tee $2 - i64.load - i64.store + i32.load16_s + i32.store16 local.get $2 local.get $5 - i64.store + i32.store16 local.get $1 i32.const 1 i32.add @@ -9899,74 +10000,78 @@ end local.get $3 ) - (func $~lib/typedarray/Int64Array#subarray (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 4 local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 i32.const 4 - local.get $2 + local.get $0 i32.lt_s select - local.set $3 + local.set $2 local.get $1 i32.const 0 i32.lt_s if (result i32) + local.get $0 local.get $1 - local.get $2 i32.add - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select else local.get $1 - local.get $2 + local.get $0 local.get $1 - local.get $2 + local.get $0 i32.lt_s select end - local.set $1 + local.set $0 i32.const 12 - i32.const 10 + i32.const 6 call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $0 + local.tee $1 + local.get $3 i32.load call $~lib/rt/pure/__retain i32.store - local.get $2 - local.get $0 - i32.load offset=4 + local.get $1 local.get $3 - i32.const 3 + i32.load offset=4 + local.get $2 + i32.const 1 i32.shl i32.add i32.store offset=4 - local.get $2 - local.get $1 - local.get $3 local.get $1 - local.get $3 + local.get $0 + local.get $2 + local.get $0 + local.get $2 i32.gt_s select - local.get $3 + local.get $2 i32.sub - i32.const 3 + i32.const 1 i32.shl i32.store offset=8 - local.get $2 + local.get $1 call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> (local $0 i32) (local $1 i32) (local $2 i32) @@ -9976,12 +10081,14 @@ i32.const 2812 i32.load local.tee $1 - call $~lib/typedarray/Int64Array#constructor + call $~lib/typedarray/Int16Array#constructor local.tee $4 + call $~lib/rt/pure/__retain local.set $2 local.get $1 - call $~lib/typedarray/Int64Array#constructor + call $~lib/typedarray/Int16Array#constructor local.tee $5 + call $~lib/rt/pure/__retain local.set $3 loop $for-loop|0 local.get $0 @@ -9993,15 +10100,21 @@ i32.const 2800 local.get $0 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set local.get $3 local.get $0 i32.const 2800 local.get $0 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set local.get $0 i32.const 1 i32.add @@ -10010,7 +10123,7 @@ end end local.get $2 - call $~lib/typedarray/Int64Array#reverse + call $~lib/typedarray/Int16Array#reverse call $~lib/rt/pure/__release i32.const 0 local.set $0 @@ -10021,7 +10134,7 @@ if local.get $2 local.get $0 - call $~lib/typedarray/Int64Array#__get + call $~lib/typedarray/Int16Array#__get i32.const 2800 local.get $1 i32.const 1 @@ -10029,8 +10142,11 @@ local.get $0 i32.sub call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.ne if i32.const 0 i32.const 1312 @@ -10048,14 +10164,14 @@ end local.get $3 i32.const 8 - call $~lib/typedarray/Int64Array#subarray + call $~lib/typedarray/Int16Array#subarray local.tee $1 - call $~lib/typedarray/Int64Array#reverse + call $~lib/typedarray/Int16Array#reverse local.tee $0 i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 8 - i64.ne + call $~lib/typedarray/Int16Array#__get + i32.const 8 + i32.ne if i32.const 0 i32.const 1312 @@ -10066,9 +10182,9 @@ end local.get $0 i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 7 - i64.ne + call $~lib/typedarray/Int16Array#__get + i32.const 7 + i32.ne if i32.const 0 i32.const 1312 @@ -10079,9 +10195,9 @@ end local.get $0 i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 6 - i64.ne + call $~lib/typedarray/Int16Array#__get + i32.const 6 + i32.ne if i32.const 0 i32.const 1312 @@ -10092,9 +10208,9 @@ end local.get $0 i32.const 3 - call $~lib/typedarray/Int64Array#__get - i64.const 5 - i64.ne + call $~lib/typedarray/Int16Array#__get + i32.const 5 + i32.ne if i32.const 0 i32.const 1312 @@ -10109,77 +10225,143 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release + i32.const 2800 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint64Array#subarray (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 + i32.load offset=4 + local.set $4 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|0 + local.get $1 + local.get $0 + i32.lt_u + if + local.get $4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.tee $2 + i32.load16_u + local.set $5 + local.get $2 + local.get $4 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.tee $2 + i32.load16_u + i32.store16 + local.get $2 + local.get $5 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 4 local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 i32.const 4 - local.get $2 + local.get $0 i32.lt_s select - local.set $3 + local.set $2 local.get $1 i32.const 0 i32.lt_s if (result i32) + local.get $0 local.get $1 - local.get $2 i32.add - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select else local.get $1 - local.get $2 + local.get $0 local.get $1 - local.get $2 + local.get $0 i32.lt_s select end - local.set $1 + local.set $0 i32.const 12 - i32.const 11 + i32.const 7 call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $0 + local.tee $1 + local.get $3 i32.load call $~lib/rt/pure/__retain i32.store - local.get $2 - local.get $0 - i32.load offset=4 + local.get $1 local.get $3 - i32.const 3 + i32.load offset=4 + local.get $2 + i32.const 1 i32.shl i32.add i32.store offset=4 - local.get $2 - local.get $1 - local.get $3 local.get $1 - local.get $3 + local.get $0 + local.get $2 + local.get $0 + local.get $2 i32.gt_s select - local.get $3 + local.get $2 i32.sub - i32.const 3 + i32.const 1 i32.shl i32.store offset=8 - local.get $2 + local.get $1 call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> (local $0 i32) (local $1 i32) (local $2 i32) @@ -10189,12 +10371,14 @@ i32.const 2812 i32.load local.tee $1 - call $~lib/typedarray/Uint64Array#constructor + call $~lib/typedarray/Uint16Array#constructor local.tee $4 + call $~lib/rt/pure/__retain local.set $2 local.get $1 - call $~lib/typedarray/Uint64Array#constructor + call $~lib/typedarray/Uint16Array#constructor local.tee $5 + call $~lib/rt/pure/__retain local.set $3 loop $for-loop|0 local.get $0 @@ -10206,15 +10390,17 @@ i32.const 2800 local.get $0 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set local.get $3 local.get $0 i32.const 2800 local.get $0 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set local.get $0 i32.const 1 i32.add @@ -10223,7 +10409,7 @@ end end local.get $2 - call $~lib/typedarray/Int64Array#reverse + call $~lib/typedarray/Uint16Array#reverse call $~lib/rt/pure/__release i32.const 0 local.set $0 @@ -10234,7 +10420,7 @@ if local.get $2 local.get $0 - call $~lib/typedarray/Uint64Array#__get + call $~lib/typedarray/Uint16Array#__get i32.const 2800 local.get $1 i32.const 1 @@ -10242,8 +10428,9 @@ local.get $0 i32.sub call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne + i32.const 65535 + i32.and + i32.ne if i32.const 0 i32.const 1312 @@ -10261,14 +10448,14 @@ end local.get $3 i32.const 8 - call $~lib/typedarray/Uint64Array#subarray + call $~lib/typedarray/Uint16Array#subarray local.tee $1 - call $~lib/typedarray/Int64Array#reverse + call $~lib/typedarray/Uint16Array#reverse local.tee $0 i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 8 - i64.ne + call $~lib/typedarray/Uint16Array#__get + i32.const 8 + i32.ne if i32.const 0 i32.const 1312 @@ -10279,9 +10466,9 @@ end local.get $0 i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 7 - i64.ne + call $~lib/typedarray/Uint16Array#__get + i32.const 7 + i32.ne if i32.const 0 i32.const 1312 @@ -10292,9 +10479,9 @@ end local.get $0 i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 6 - i64.ne + call $~lib/typedarray/Uint16Array#__get + i32.const 6 + i32.ne if i32.const 0 i32.const 1312 @@ -10305,9 +10492,9 @@ end local.get $0 i32.const 3 - call $~lib/typedarray/Uint64Array#__get - i64.const 5 - i64.ne + call $~lib/typedarray/Uint16Array#__get + i32.const 5 + i32.ne if i32.const 0 i32.const 1312 @@ -10322,15 +10509,21 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release + i32.const 2800 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#reverse (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#reverse (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f32) + (local $5 i32) local.get $0 call $~lib/rt/pure/__retain local.tee $3 @@ -10354,7 +10547,7 @@ i32.shl i32.add local.tee $2 - f32.load + i32.load local.set $5 local.get $2 local.get $4 @@ -10363,11 +10556,11 @@ i32.shl i32.add local.tee $2 - f32.load - f32.store + i32.load + i32.store local.get $2 local.get $5 - f32.store + i32.store local.get $1 i32.const 1 i32.add @@ -10381,74 +10574,7 @@ end local.get $3 ) - (func $~lib/typedarray/Float32Array#subarray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - i32.const 4 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 - i32.const 4 - local.get $2 - i32.lt_s - select - local.set $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $2 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $2 - local.get $1 - local.get $2 - i32.lt_s - select - end - local.set $1 - i32.const 12 - i32.const 12 - call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $0 - i32.load - call $~lib/rt/pure/__retain - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 - local.get $2 - local.get $1 - local.get $3 - local.get $1 - local.get $3 - i32.gt_s - select - local.get $3 - i32.sub - i32.const 2 - i32.shl - i32.store offset=8 - local.get $2 - call $~lib/rt/pure/__retain - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> (local $0 i32) (local $1 i32) (local $2 i32) @@ -10458,12 +10584,14 @@ i32.const 2812 i32.load local.tee $1 - call $~lib/typedarray/Float32Array#constructor + call $~lib/typedarray/Int32Array#constructor local.tee $4 + call $~lib/rt/pure/__retain local.set $2 local.get $1 - call $~lib/typedarray/Float32Array#constructor + call $~lib/typedarray/Int32Array#constructor local.tee $5 + call $~lib/rt/pure/__retain local.set $3 loop $for-loop|0 local.get $0 @@ -10475,15 +10603,13 @@ i32.const 2800 local.get $0 call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Int32Array#__set local.get $3 local.get $0 i32.const 2800 local.get $0 call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 1 i32.add @@ -10492,7 +10618,7 @@ end end local.get $2 - call $~lib/typedarray/Float32Array#reverse + call $~lib/typedarray/Int32Array#reverse call $~lib/rt/pure/__release i32.const 0 local.set $0 @@ -10503,7 +10629,7 @@ if local.get $2 local.get $0 - call $~lib/typedarray/Float32Array#__get + call $~lib/typedarray/Int32Array#__get i32.const 2800 local.get $1 i32.const 1 @@ -10511,8 +10637,7 @@ local.get $0 i32.sub call $~lib/array/Array#__get - f32.convert_i32_s - f32.ne + i32.ne if i32.const 0 i32.const 1312 @@ -10529,15 +10654,16 @@ end end local.get $3 + i32.const 4 i32.const 8 - call $~lib/typedarray/Float32Array#subarray + call $~lib/typedarray/Int32Array#subarray local.tee $1 - call $~lib/typedarray/Float32Array#reverse + call $~lib/typedarray/Int32Array#reverse local.tee $0 i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 8 - f32.ne + call $~lib/typedarray/Int32Array#__get + i32.const 8 + i32.ne if i32.const 0 i32.const 1312 @@ -10548,9 +10674,9 @@ end local.get $0 i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 7 - f32.ne + call $~lib/typedarray/Int32Array#__get + i32.const 7 + i32.ne if i32.const 0 i32.const 1312 @@ -10561,9 +10687,9 @@ end local.get $0 i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 6 - f32.ne + call $~lib/typedarray/Int32Array#__get + i32.const 6 + i32.ne if i32.const 0 i32.const 1312 @@ -10574,9 +10700,9 @@ end local.get $0 i32.const 3 - call $~lib/typedarray/Float32Array#__get - f32.const 5 - f32.ne + call $~lib/typedarray/Int32Array#__get + i32.const 5 + i32.ne if i32.const 0 i32.const 1312 @@ -10591,81 +10717,104 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release + i32.const 2800 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#reverse (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/typedarray/Uint32Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 f64) + i32.const 4 local.get $0 call $~lib/rt/pure/__retain local.tee $3 - i32.load offset=4 - local.set $4 - local.get $3 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|0 + local.tee $0 + i32.const 4 + local.get $0 + i32.lt_s + select + local.set $2 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $0 local.get $1 + i32.add + local.tee $0 + i32.const 0 local.get $0 - i32.lt_u - if - local.get $4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.tee $2 - f64.load - local.set $5 - local.get $2 - local.get $4 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.tee $2 - f64.load - f64.store - local.get $2 - local.get $5 - f64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|0 - end + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $0 + local.get $1 + local.get $0 + i32.lt_s + select end + local.set $0 + i32.const 12 + i32.const 9 + call $~lib/rt/tlsf/__alloc + local.tee $1 local.get $3 - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - i32.const 2812 i32.load - local.tee $1 - call $~lib/typedarray/Float64Array#constructor + call $~lib/rt/pure/__retain + i32.store + local.get $1 + local.get $3 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $1 + local.get $0 + local.get $2 + local.get $0 + local.get $2 + i32.gt_s + select + local.get $2 + i32.sub + i32.const 2 + i32.shl + i32.store offset=8 + local.get $1 + call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 2812 + i32.load + local.tee $1 + call $~lib/typedarray/Uint32Array#constructor local.tee $4 + call $~lib/rt/pure/__retain local.set $2 local.get $1 - call $~lib/typedarray/Float64Array#constructor + call $~lib/typedarray/Uint32Array#constructor local.tee $5 + call $~lib/rt/pure/__retain local.set $3 loop $for-loop|0 local.get $0 @@ -10677,15 +10826,13 @@ i32.const 2800 local.get $0 call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set + call $~lib/typedarray/Uint32Array#__set local.get $3 local.get $0 i32.const 2800 local.get $0 call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set + call $~lib/typedarray/Uint32Array#__set local.get $0 i32.const 1 i32.add @@ -10694,7 +10841,7 @@ end end local.get $2 - call $~lib/typedarray/Float64Array#reverse + call $~lib/typedarray/Int32Array#reverse call $~lib/rt/pure/__release i32.const 0 local.set $0 @@ -10705,7 +10852,7 @@ if local.get $2 local.get $0 - call $~lib/typedarray/Float64Array#__get + call $~lib/typedarray/Uint32Array#__get i32.const 2800 local.get $1 i32.const 1 @@ -10713,8 +10860,7 @@ local.get $0 i32.sub call $~lib/array/Array#__get - f64.convert_i32_s - f64.ne + i32.ne if i32.const 0 i32.const 1312 @@ -10731,16 +10877,15 @@ end end local.get $3 - i32.const 4 i32.const 8 - call $~lib/typedarray/Float64Array#subarray + call $~lib/typedarray/Uint32Array#subarray local.tee $1 - call $~lib/typedarray/Float64Array#reverse + call $~lib/typedarray/Int32Array#reverse local.tee $0 i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 8 - f64.ne + call $~lib/typedarray/Uint32Array#__get + i32.const 8 + i32.ne if i32.const 0 i32.const 1312 @@ -10751,9 +10896,9 @@ end local.get $0 i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 7 - f64.ne + call $~lib/typedarray/Uint32Array#__get + i32.const 7 + i32.ne if i32.const 0 i32.const 1312 @@ -10764,9 +10909,9 @@ end local.get $0 i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.ne + call $~lib/typedarray/Uint32Array#__get + i32.const 6 + i32.ne if i32.const 0 i32.const 1312 @@ -10777,9 +10922,9 @@ end local.get $0 i32.const 3 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.ne + call $~lib/typedarray/Uint32Array#__get + i32.const 5 + i32.ne if i32.const 0 i32.const 1312 @@ -10794,595 +10939,1203 @@ call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release + i32.const 2800 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int8Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + (local $4 i32) + (local $5 i64) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 + i32.load offset=4 + local.set $4 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|0 + local.get $1 local.get $0 - i32.load offset=8 - local.tee $3 - if (result i32) - local.get $2 - local.get $3 - i32.ge_s - else - i32.const 1 - end - if - i32.const -1 - local.set $2 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - end - local.get $2 - i32.const 0 - i32.lt_s + i32.lt_u if - local.get $2 - local.get $3 + local.get $4 + local.get $1 + i32.const 3 + i32.shl i32.add local.tee $2 - i32.const 0 + i64.load + local.set $5 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 $4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.tee $2 + i64.load + i64.store 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 - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end + local.get $5 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0 end - i32.const -1 - local.set $2 end - local.get $2 + local.get $3 ) - (func $~lib/typedarray/Int8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array#subarray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + i32.const 4 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $0 + i32.const 4 + local.get $0 + i32.lt_s + select + local.set $2 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) local.get $0 - i32.load offset=8 - local.tee $3 - i32.eqz - if - i32.const -1 - local.set $2 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - end - local.get $2 - local.get $3 + local.get $1 i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 + local.tee $0 i32.const 0 - i32.lt_s + local.get $0 + i32.const 0 + i32.gt_s select - local.set $2 + else + local.get $1 local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $0 - local.get $2 - i32.add - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - local.set $2 - end - local.get $2 - ) - (func $~lib/typedarray/Int8Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end + local.get $1 local.get $0 - i32.load offset=8 - local.set $2 + i32.lt_s + select end - local.get $0 + local.set $0 + i32.const 12 + i32.const 10 + call $~lib/rt/tlsf/__alloc + local.tee $1 + local.get $3 + i32.load + call $~lib/rt/pure/__retain + i32.store local.get $1 + local.get $3 + i32.load offset=4 local.get $2 - call $~lib/typedarray/Int8Array#lastIndexOf + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $1 + local.get $0 + local.get $2 + local.get $0 + local.get $2 + i32.gt_s + select + local.get $2 + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 + local.get $1 + call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - i32.const 2908 + (local $4 i32) + (local $5 i32) + i32.const 2812 i32.load - local.tee $0 + local.tee $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $4 + call $~lib/rt/pure/__retain local.set $2 - local.get $0 - call $~lib/typedarray/Int8Array#constructor - local.tee $3 - local.set $0 + local.get $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $5 + call $~lib/rt/pure/__retain + local.set $3 loop $for-loop|0 + local.get $0 local.get $1 - local.get $2 i32.lt_s if + local.get $2 + local.get $0 + i32.const 2800 local.get $0 - local.get $1 - i32.const 2896 - local.get $1 call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $1 + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $3 + local.get $0 + i32.const 2800 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - if - i32.const 0 - i32.const 1312 - i32.const 557 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 11 + local.get $2 + call $~lib/typedarray/Int64Array#reverse + call $~lib/rt/pure/__release i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 558 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/typedarray/Int64Array#__get + i32.const 2800 + local.get $1 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.ne + if + i32.const 0 + i32.const 1312 + i32.const 524 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end end - local.get $0 - i32.const -1 + local.get $3 + i32.const 8 + call $~lib/typedarray/Int64Array#subarray + local.tee $1 + call $~lib/typedarray/Int64Array#reverse + local.tee $0 i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne + call $~lib/typedarray/Int64Array#__get + i64.const 8 + i64.ne if i32.const 0 i32.const 1312 - i32.const 559 + i32.const 529 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 7 + i64.ne if i32.const 0 i32.const 1312 - i32.const 560 + i32.const 530 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 3 i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne + call $~lib/typedarray/Int64Array#__get + i64.const 6 + i64.ne if i32.const 0 i32.const 1312 - i32.const 561 + i32.const 531 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 i32.const 3 - i32.const 3 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.ne if i32.const 0 i32.const 1312 - i32.const 562 + i32.const 532 i32.const 3 call $~lib/builtins/abort unreachable end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 2800 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release local.get $0 - i32.const 3 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint64Array#subarray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) i32.const 4 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 563 - i32.const 3 - call $~lib/builtins/abort - unreachable - end local.get $0 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 564 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 565 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength + call $~lib/rt/pure/__retain + local.tee $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $0 + i32.const 4 local.get $0 + i32.lt_s + select + local.set $2 + local.get $1 i32.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - if + i32.lt_s + if (result i32) + local.get $0 + local.get $1 + i32.add + local.tee $0 i32.const 0 - i32.const 1312 - i32.const 567 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 11 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if + local.get $0 i32.const 0 - i32.const 1312 - i32.const 568 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.gt_s + select + else + local.get $1 + local.get $0 + local.get $1 + local.get $0 + i32.lt_s + select end - i32.const 1 - global.set $~argumentsLength + local.set $0 + i32.const 12 + i32.const 11 + call $~lib/rt/tlsf/__alloc + local.tee $1 + local.get $3 + i32.load + call $~lib/rt/pure/__retain + i32.store + local.get $1 + local.get $3 + i32.load offset=4 + local.get $2 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $1 local.get $0 - i32.const -1 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 569 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength + local.get $2 local.get $0 + local.get $2 + i32.gt_s + select + local.get $2 + i32.sub i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 570 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shl + i32.store offset=8 + local.get $1 + call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 2812 + i32.load + local.tee $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $4 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $5 + call $~lib/rt/pure/__retain + local.set $3 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 2800 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $3 + local.get $0 + i32.const 2800 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end end - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.ne + local.get $2 + call $~lib/typedarray/Int64Array#reverse + call $~lib/rt/pure/__release + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/typedarray/Uint64Array#__get + i32.const 2800 + local.get $1 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.ne + if + i32.const 0 + i32.const 1312 + i32.const 524 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + local.get $3 + i32.const 8 + call $~lib/typedarray/Uint64Array#subarray + local.tee $1 + call $~lib/typedarray/Int64Array#reverse + local.tee $0 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 8 + i64.ne if i32.const 0 i32.const 1312 - i32.const 571 + i32.const 529 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.ne + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 7 + i64.ne if i32.const 0 i32.const 1312 - i32.const 572 + i32.const 530 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 3 i32.const 2 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.ne + call $~lib/typedarray/Uint64Array#__get + i64.const 6 + i64.ne if i32.const 0 i32.const 1312 - i32.const 573 + i32.const 531 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.ne + i32.const 3 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.ne if i32.const 0 i32.const 1312 - i32.const 574 + i32.const 532 i32.const 3 call $~lib/builtins/abort unreachable end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 2800 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release local.get $0 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float32Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 + i32.load offset=4 + local.set $4 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u i32.const 1 - i32.const -10 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.ne + i32.sub + local.set $0 + loop $for-loop|0 + local.get $1 + local.get $0 + i32.lt_u + if + local.get $4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $2 + f32.load + local.set $5 + local.get $2 + local.get $4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.tee $2 + f32.load + f32.store + local.get $2 + local.get $5 + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0 + end + end + local.get $3 + ) + (func $~lib/typedarray/Float32Array#subarray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + i32.const 4 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.const 4 + local.get $0 + i32.lt_s + select + local.set $2 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $0 + local.get $1 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $0 + local.get $1 + local.get $0 + i32.lt_s + select + end + local.set $0 + i32.const 12 + i32.const 12 + call $~lib/rt/tlsf/__alloc + local.tee $1 + local.get $3 + i32.load + call $~lib/rt/pure/__retain + i32.store + local.get $1 + local.get $3 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $1 + local.get $0 + local.get $2 + local.get $0 + local.get $2 + i32.gt_s + select + local.get $2 + i32.sub + i32.const 2 + i32.shl + i32.store offset=8 + local.get $1 + call $~lib/rt/pure/__retain + local.get $3 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 2812 + i32.load + local.tee $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $4 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $5 + call $~lib/rt/pure/__retain + local.set $3 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 2800 + local.get $0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $3 + local.get $0 + i32.const 2800 + local.get $0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Float32Array#reverse + call $~lib/rt/pure/__release + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/typedarray/Float32Array#__get + i32.const 2800 + local.get $1 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + f32.convert_i32_s + f32.ne + if + i32.const 0 + i32.const 1312 + i32.const 524 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + local.get $3 + i32.const 8 + call $~lib/typedarray/Float32Array#subarray + local.tee $1 + call $~lib/typedarray/Float32Array#reverse + local.tee $0 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 8 + f32.ne if i32.const 0 i32.const 1312 - i32.const 575 + i32.const 529 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 i32.const 1 - i32.const -11 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.ne + call $~lib/typedarray/Float32Array#__get + f32.const 7 + f32.ne if i32.const 0 i32.const 1312 - i32.const 576 + i32.const 530 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Int8Array#subarray - local.tee $0 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 6 + f32.ne if i32.const 0 i32.const 1312 - i32.const 580 + i32.const 531 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf + i32.const 3 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.ne if i32.const 0 i32.const 1312 - i32.const 581 + i32.const 532 i32.const 3 call $~lib/builtins/abort unreachable end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 2800 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release local.get $0 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float64Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $3 + i32.load offset=4 + local.set $4 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 582 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.sub + local.set $0 + loop $for-loop|0 + local.get $1 + local.get $0 + i32.lt_u + if + local.get $4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.tee $2 + f64.load + local.set $5 + local.get $2 + local.get $4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.tee $2 + f64.load + f64.store + local.get $2 + local.get $5 + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|0 + end end - local.get $0 - i32.const 9 + local.get $3 + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 2812 + i32.load + local.tee $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $4 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $5 + call $~lib/rt/pure/__retain + local.set $3 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 2800 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $3 + local.get $0 + i32.const 2800 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + local.get $2 + call $~lib/typedarray/Float64Array#reverse + call $~lib/rt/pure/__release i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 583 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/typedarray/Float64Array#__get + i32.const 2800 + local.get $1 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + f64.convert_i32_s + f64.ne + if + i32.const 0 + i32.const 1312 + i32.const 524 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end end - local.get $0 - i32.const 10 + local.get $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Float64Array#subarray + local.tee $1 + call $~lib/typedarray/Float64Array#reverse + local.tee $0 i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne + call $~lib/typedarray/Float64Array#__get + f64.const 8 + f64.ne if i32.const 0 i32.const 1312 - i32.const 584 + i32.const 529 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.ne if i32.const 0 i32.const 1312 - i32.const 585 + i32.const 530 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.ne if i32.const 0 i32.const 1312 - i32.const 586 + i32.const 531 i32.const 3 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.ne if i32.const 0 i32.const 1312 - i32.const 587 + i32.const 532 i32.const 3 call $~lib/builtins/abort unreachable end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 2800 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int8Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - i32.const 2908 - i32.load - local.tee $0 - local.set $2 - local.get $0 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - local.set $0 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2896 - local.get $1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + (local $4 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.load offset=8 + local.tee $3 + if (result i32) + local.get $2 + local.get $3 + i32.ge_s + else + i32.const 1 + end + if + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + 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 $4 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $4 + i32.add + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + end + local.get $2 + ) + (func $~lib/typedarray/Int8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.load offset=8 + local.tee $3 + i32.eqz + if + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $3 + i32.add + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + end + local.get $2 + ) + (func $~lib/typedarray/Int8Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=8 + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int8Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 2908 + i32.load + local.tee $0 + local.set $2 + local.get $0 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $0 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2896 + local.get $1 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set local.get $1 i32.const 1 i32.add @@ -11657,9 +12410,10 @@ unreachable end local.get $0 + i32.const 4 i32.const 9 - call $~lib/typedarray/Uint8Array#subarray - local.tee $0 + call $~lib/typedarray/Int8Array#subarray + local.tee $1 i32.const 3 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -11673,7 +12427,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 4 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -11685,7 +12439,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -11699,7 +12453,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 9 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -11713,7 +12467,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 10 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -11727,7 +12481,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 11 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -11741,7 +12495,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 1 call $~lib/typedarray/Int8Array#indexOf @@ -11755,7 +12509,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 2 call $~lib/typedarray/Int8Array#indexOf @@ -11771,10 +12525,14 @@ end local.get $3 call $~lib/rt/pure/__release + i32.const 2896 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> (local $0 i32) (local $1 i32) (local $2 i32) @@ -11784,8 +12542,9 @@ local.tee $0 local.set $2 local.get $0 - call $~lib/typedarray/Uint8ClampedArray#constructor + call $~lib/typedarray/Uint8Array#constructor local.tee $3 + call $~lib/rt/pure/__retain local.set $0 loop $for-loop|0 local.get $1 @@ -11799,7 +12558,7 @@ call $~lib/array/Array#__get i32.const 255 i32.and - call $~lib/typedarray/Uint8ClampedArray#__set + call $~lib/typedarray/Uint8Array#__set local.get $1 i32.const 1 i32.add @@ -12075,8 +12834,8 @@ end local.get $0 i32.const 9 - call $~lib/typedarray/Uint8ClampedArray#subarray - local.tee $0 + call $~lib/typedarray/Uint8Array#subarray + local.tee $1 i32.const 3 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -12090,7 +12849,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 4 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -12102,7 +12861,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -12116,7 +12875,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 9 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -12130,7 +12889,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 10 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -12144,7 +12903,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 11 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -12158,7 +12917,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 1 call $~lib/typedarray/Int8Array#indexOf @@ -12172,7 +12931,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 2 call $~lib/typedarray/Int8Array#indexOf @@ -12188,171 +12947,26 @@ end local.get $3 call $~lib/rt/pure/__release + i32.const 2896 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $3 - if (result i32) - local.get $2 - local.get $3 - i32.ge_s - else - i32.const 1 - end - if - i32.const -1 - local.set $2 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - 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 1 - i32.shl - i32.add - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - local.set $2 - end - local.get $2 - ) - (func $~lib/typedarray/Int16Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $3 - i32.eqz - if - i32.const -1 - local.set $2 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - end - local.get $2 - local.get $3 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - local.set $2 - end - local.get $2 - ) - (func $~lib/typedarray/Int16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int16Array#lastIndexOf - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> + (local $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) i32.const 2908 i32.load local.tee $0 local.set $2 local.get $0 - call $~lib/typedarray/Int16Array#constructor + call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $3 + call $~lib/rt/pure/__retain local.set $0 loop $for-loop|0 local.get $1 @@ -12364,11 +12978,9 @@ i32.const 2896 local.get $1 call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set local.get $1 i32.const 1 i32.add @@ -12379,7 +12991,7 @@ local.get $0 i32.const 0 i32.const 0 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int8Array#indexOf if i32.const 0 i32.const 1312 @@ -12391,7 +13003,7 @@ local.get $0 i32.const 11 i32.const 0 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int8Array#indexOf i32.const -1 i32.ne if @@ -12405,7 +13017,7 @@ local.get $0 i32.const -1 i32.const 0 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int8Array#indexOf i32.const -1 i32.ne if @@ -12419,7 +13031,7 @@ local.get $0 i32.const 3 i32.const 0 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int8Array#indexOf i32.const 3 i32.ne if @@ -12433,7 +13045,7 @@ local.get $0 i32.const 3 i32.const 2 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int8Array#indexOf i32.const 3 i32.ne if @@ -12447,7 +13059,7 @@ local.get $0 i32.const 3 i32.const 3 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int8Array#indexOf i32.const 3 i32.ne if @@ -12461,7 +13073,7 @@ local.get $0 i32.const 3 i32.const 4 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int8Array#indexOf i32.const -1 i32.ne if @@ -12475,7 +13087,7 @@ local.get $0 i32.const 1 i32.const 10 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int8Array#indexOf i32.const -1 i32.ne if @@ -12489,7 +13101,7 @@ local.get $0 i32.const 1 i32.const -100 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int8Array#indexOf i32.const 1 i32.ne if @@ -12504,7 +13116,7 @@ global.set $~argumentsLength local.get $0 i32.const 0 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs + call $~lib/typedarray/Int8Array#lastIndexOf@varargs if i32.const 0 i32.const 1312 @@ -12517,7 +13129,7 @@ global.set $~argumentsLength local.get $0 i32.const 11 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs + call $~lib/typedarray/Int8Array#lastIndexOf@varargs i32.const -1 i32.ne if @@ -12532,7 +13144,7 @@ global.set $~argumentsLength local.get $0 i32.const -1 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs + call $~lib/typedarray/Int8Array#lastIndexOf@varargs i32.const -1 i32.ne if @@ -12547,7 +13159,7 @@ global.set $~argumentsLength local.get $0 i32.const 3 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs + call $~lib/typedarray/Int8Array#lastIndexOf@varargs i32.const 3 i32.ne if @@ -12561,7 +13173,7 @@ local.get $0 i32.const 3 i32.const 4 - call $~lib/typedarray/Int16Array#lastIndexOf + call $~lib/typedarray/Int8Array#lastIndexOf i32.const 3 i32.ne if @@ -12575,7 +13187,7 @@ local.get $0 i32.const 3 i32.const 3 - call $~lib/typedarray/Int16Array#lastIndexOf + call $~lib/typedarray/Int8Array#lastIndexOf i32.const 3 i32.ne if @@ -12589,7 +13201,7 @@ local.get $0 i32.const 3 i32.const 2 - call $~lib/typedarray/Int16Array#lastIndexOf + call $~lib/typedarray/Int8Array#lastIndexOf i32.const -1 i32.ne if @@ -12603,7 +13215,7 @@ local.get $0 i32.const 1 i32.const 100 - call $~lib/typedarray/Int16Array#lastIndexOf + call $~lib/typedarray/Int8Array#lastIndexOf i32.const 1 i32.ne if @@ -12617,7 +13229,7 @@ local.get $0 i32.const 1 i32.const -10 - call $~lib/typedarray/Int16Array#lastIndexOf + call $~lib/typedarray/Int8Array#lastIndexOf i32.const 1 i32.ne if @@ -12631,7 +13243,7 @@ local.get $0 i32.const 1 i32.const -11 - call $~lib/typedarray/Int16Array#lastIndexOf + call $~lib/typedarray/Int8Array#lastIndexOf i32.const -1 i32.ne if @@ -12644,11 +13256,11 @@ end local.get $0 i32.const 9 - call $~lib/typedarray/Int16Array#subarray - local.tee $0 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.tee $1 i32.const 3 i32.const 0 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int8Array#indexOf i32.const -1 i32.ne if @@ -12659,10 +13271,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 4 i32.const 0 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int8Array#indexOf if i32.const 0 i32.const 1312 @@ -12671,10 +13283,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 0 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int8Array#indexOf i32.const 1 i32.ne if @@ -12685,10 +13297,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 9 i32.const 0 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int8Array#indexOf i32.const -1 i32.ne if @@ -12699,10 +13311,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 10 i32.const 0 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int8Array#indexOf i32.const -1 i32.ne if @@ -12713,10 +13325,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 11 i32.const 0 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int8Array#indexOf i32.const -1 i32.ne if @@ -12727,10 +13339,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 1 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int8Array#indexOf i32.const 1 i32.ne if @@ -12741,10 +13353,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 2 - call $~lib/typedarray/Int16Array#indexOf + call $~lib/typedarray/Int8Array#indexOf i32.const -1 i32.ne if @@ -12757,24 +13369,200 @@ end local.get $3 call $~lib/rt/pure/__release + i32.const 2896 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int16Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - i32.const 2908 - i32.load - local.tee $0 - local.set $2 - local.get $0 - call $~lib/typedarray/Uint16Array#constructor - local.tee $3 - local.set $0 - loop $for-loop|0 - local.get $1 + (local $4 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + if (result i32) + local.get $2 + local.get $3 + i32.ge_s + else + i32.const 1 + end + if + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + 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 $4 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + end + local.get $2 + ) + (func $~lib/typedarray/Int16Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + i32.eqz + if + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $3 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + end + local.get $2 + ) + (func $~lib/typedarray/Int16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int16Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 2908 + i32.load + local.tee $0 + local.set $2 + local.get $0 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $0 + loop $for-loop|0 + local.get $1 local.get $2 i32.lt_s if @@ -12783,9 +13571,11 @@ i32.const 2896 local.get $1 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set local.get $1 i32.const 1 i32.add @@ -13061,8 +13851,8 @@ end local.get $0 i32.const 9 - call $~lib/typedarray/Uint16Array#subarray - local.tee $0 + call $~lib/typedarray/Int16Array#subarray + local.tee $1 i32.const 3 i32.const 0 call $~lib/typedarray/Int16Array#indexOf @@ -13076,7 +13866,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 4 i32.const 0 call $~lib/typedarray/Int16Array#indexOf @@ -13088,7 +13878,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 0 call $~lib/typedarray/Int16Array#indexOf @@ -13102,7 +13892,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 9 i32.const 0 call $~lib/typedarray/Int16Array#indexOf @@ -13116,7 +13906,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 10 i32.const 0 call $~lib/typedarray/Int16Array#indexOf @@ -13130,7 +13920,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 11 i32.const 0 call $~lib/typedarray/Int16Array#indexOf @@ -13144,7 +13934,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 1 call $~lib/typedarray/Int16Array#indexOf @@ -13158,7 +13948,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 2 call $~lib/typedarray/Int16Array#indexOf @@ -13174,190 +13964,51 @@ end local.get $3 call $~lib/rt/pure/__release + i32.const 2896 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> + (local $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $3 - if (result i32) - local.get $2 - local.get $3 - i32.ge_s - else - i32.const 1 - end - if - i32.const -1 - local.set $2 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - end + i32.const 2908 + i32.load + local.tee $0 + local.set $2 + local.get $0 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $0 + loop $for-loop|0 + local.get $1 local.get $2 - i32.const 0 i32.lt_s if - local.get $2 - local.get $3 + local.get $0 + local.get $1 + i32.const 2896 + local.get $1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 i32.add - local.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 $1 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - local.set $2 - end - local.get $2 - ) - (func $~lib/typedarray/Int32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $3 - i32.eqz - if - i32.const -1 - local.set $2 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - end - local.get $2 - local.get $3 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $1 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - local.set $2 - end - local.get $2 - ) - (func $~lib/typedarray/Int32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int32Array#lastIndexOf - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 2908 - i32.load - local.tee $0 - local.set $2 - local.get $0 - call $~lib/typedarray/Int32Array#constructor - local.tee $3 - local.set $0 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2896 - local.get $1 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 + local.set $1 + br $for-loop|0 end end local.get $0 i32.const 0 i32.const 0 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Int16Array#indexOf if i32.const 0 i32.const 1312 @@ -13369,7 +14020,7 @@ local.get $0 i32.const 11 i32.const 0 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Int16Array#indexOf i32.const -1 i32.ne if @@ -13383,7 +14034,7 @@ local.get $0 i32.const -1 i32.const 0 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Int16Array#indexOf i32.const -1 i32.ne if @@ -13397,7 +14048,7 @@ local.get $0 i32.const 3 i32.const 0 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Int16Array#indexOf i32.const 3 i32.ne if @@ -13411,7 +14062,7 @@ local.get $0 i32.const 3 i32.const 2 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Int16Array#indexOf i32.const 3 i32.ne if @@ -13425,7 +14076,7 @@ local.get $0 i32.const 3 i32.const 3 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Int16Array#indexOf i32.const 3 i32.ne if @@ -13439,7 +14090,7 @@ local.get $0 i32.const 3 i32.const 4 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Int16Array#indexOf i32.const -1 i32.ne if @@ -13453,7 +14104,7 @@ local.get $0 i32.const 1 i32.const 10 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Int16Array#indexOf i32.const -1 i32.ne if @@ -13467,7 +14118,7 @@ local.get $0 i32.const 1 i32.const -100 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Int16Array#indexOf i32.const 1 i32.ne if @@ -13482,7 +14133,7 @@ global.set $~argumentsLength local.get $0 i32.const 0 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs + call $~lib/typedarray/Int16Array#lastIndexOf@varargs if i32.const 0 i32.const 1312 @@ -13495,7 +14146,7 @@ global.set $~argumentsLength local.get $0 i32.const 11 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs + call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const -1 i32.ne if @@ -13510,7 +14161,7 @@ global.set $~argumentsLength local.get $0 i32.const -1 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs + call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const -1 i32.ne if @@ -13525,7 +14176,7 @@ global.set $~argumentsLength local.get $0 i32.const 3 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs + call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const 3 i32.ne if @@ -13539,7 +14190,7 @@ local.get $0 i32.const 3 i32.const 4 - call $~lib/typedarray/Int32Array#lastIndexOf + call $~lib/typedarray/Int16Array#lastIndexOf i32.const 3 i32.ne if @@ -13553,7 +14204,7 @@ local.get $0 i32.const 3 i32.const 3 - call $~lib/typedarray/Int32Array#lastIndexOf + call $~lib/typedarray/Int16Array#lastIndexOf i32.const 3 i32.ne if @@ -13567,7 +14218,7 @@ local.get $0 i32.const 3 i32.const 2 - call $~lib/typedarray/Int32Array#lastIndexOf + call $~lib/typedarray/Int16Array#lastIndexOf i32.const -1 i32.ne if @@ -13581,7 +14232,7 @@ local.get $0 i32.const 1 i32.const 100 - call $~lib/typedarray/Int32Array#lastIndexOf + call $~lib/typedarray/Int16Array#lastIndexOf i32.const 1 i32.ne if @@ -13595,7 +14246,7 @@ local.get $0 i32.const 1 i32.const -10 - call $~lib/typedarray/Int32Array#lastIndexOf + call $~lib/typedarray/Int16Array#lastIndexOf i32.const 1 i32.ne if @@ -13609,7 +14260,7 @@ local.get $0 i32.const 1 i32.const -11 - call $~lib/typedarray/Int32Array#lastIndexOf + call $~lib/typedarray/Int16Array#lastIndexOf i32.const -1 i32.ne if @@ -13621,13 +14272,12 @@ unreachable end local.get $0 - i32.const 4 i32.const 9 - call $~lib/typedarray/Int32Array#subarray - local.tee $0 + call $~lib/typedarray/Uint16Array#subarray + local.tee $1 i32.const 3 i32.const 0 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Int16Array#indexOf i32.const -1 i32.ne if @@ -13638,10 +14288,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 4 i32.const 0 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Int16Array#indexOf if i32.const 0 i32.const 1312 @@ -13650,10 +14300,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 0 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Int16Array#indexOf i32.const 1 i32.ne if @@ -13664,10 +14314,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 9 i32.const 0 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Int16Array#indexOf i32.const -1 i32.ne if @@ -13678,10 +14328,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 10 i32.const 0 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Int16Array#indexOf i32.const -1 i32.ne if @@ -13692,10 +14342,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 11 i32.const 0 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Int16Array#indexOf i32.const -1 i32.ne if @@ -13706,10 +14356,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 1 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Int16Array#indexOf i32.const 1 i32.ne if @@ -13720,10 +14370,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 2 - call $~lib/typedarray/Int32Array#indexOf + call $~lib/typedarray/Int16Array#indexOf i32.const -1 i32.ne if @@ -13736,49 +14386,221 @@ end local.get $3 call $~lib/rt/pure/__release + i32.const 2896 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Int32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - i32.const 2908 - i32.load - local.tee $0 - local.set $2 - local.get $0 - call $~lib/typedarray/Uint32Array#constructor - local.tee $3 - local.set $0 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s + (local $4 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + if (result i32) + local.get $2 + local.get $3 + i32.ge_s + else + i32.const 1 + end if local.get $0 - local.get $1 - i32.const 2896 - local.get $1 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 end - end - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - if + local.get $2 i32.const 0 - i32.const 1312 - i32.const 557 - i32.const 3 + 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 $4 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + i32.eq + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + end + local.get $2 + ) + (func $~lib/typedarray/Int32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + i32.eqz + if + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + i32.eq + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + end + local.get $2 + ) + (func $~lib/typedarray/Int32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int32Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 2908 + i32.load + local.tee $0 + local.set $2 + local.get $0 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $0 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2896 + local.get $1 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + if + i32.const 0 + i32.const 1312 + i32.const 557 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -14037,9 +14859,10 @@ unreachable end local.get $0 + i32.const 4 i32.const 9 - call $~lib/typedarray/Uint32Array#subarray - local.tee $0 + call $~lib/typedarray/Int32Array#subarray + local.tee $1 i32.const 3 i32.const 0 call $~lib/typedarray/Int32Array#indexOf @@ -14053,7 +14876,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 4 i32.const 0 call $~lib/typedarray/Int32Array#indexOf @@ -14065,7 +14888,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 0 call $~lib/typedarray/Int32Array#indexOf @@ -14079,7 +14902,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 9 i32.const 0 call $~lib/typedarray/Int32Array#indexOf @@ -14093,7 +14916,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 10 i32.const 0 call $~lib/typedarray/Int32Array#indexOf @@ -14107,7 +14930,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 11 i32.const 0 call $~lib/typedarray/Int32Array#indexOf @@ -14121,7 +14944,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 1 call $~lib/typedarray/Int32Array#indexOf @@ -14135,7 +14958,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 5 i32.const 2 call $~lib/typedarray/Int32Array#indexOf @@ -14151,191 +14974,49 @@ end local.get $3 call $~lib/rt/pure/__release + i32.const 2896 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $3 - if (result i32) - local.get $2 - local.get $3 - i32.ge_s - else - i32.const 1 - end - if - i32.const -1 - local.set $2 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - end + i32.const 2908 + i32.load + local.tee $0 + local.set $2 + local.get $0 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $0 + loop $for-loop|0 + local.get $1 local.get $2 - i32.const 0 i32.lt_s if - local.get $2 - local.get $3 + local.get $0 + local.get $1 + i32.const 2896 + local.get $1 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.set $2 - end - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $1 - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - local.set $2 - end - local.get $2 - ) - (func $~lib/typedarray/Int64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $3 - i32.eqz - if - i32.const -1 - local.set $2 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - end - local.get $2 - local.get $3 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $1 - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - local.set $2 - end - local.get $2 - ) - (func $~lib/typedarray/Int64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int64Array#lastIndexOf - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 2908 - i32.load - local.tee $0 - local.set $2 - local.get $0 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 - local.set $0 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2896 - local.get $1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 + local.set $1 + br $for-loop|0 end end local.get $0 - i64.const 0 i32.const 0 - call $~lib/typedarray/Int64Array#indexOf + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf if i32.const 0 i32.const 1312 @@ -14345,9 +15026,9 @@ unreachable end local.get $0 - i64.const 11 + i32.const 11 i32.const 0 - call $~lib/typedarray/Int64Array#indexOf + call $~lib/typedarray/Int32Array#indexOf i32.const -1 i32.ne if @@ -14359,9 +15040,9 @@ unreachable end local.get $0 - i64.const -1 + i32.const -1 i32.const 0 - call $~lib/typedarray/Int64Array#indexOf + call $~lib/typedarray/Int32Array#indexOf i32.const -1 i32.ne if @@ -14373,9 +15054,9 @@ unreachable end local.get $0 - i64.const 3 + i32.const 3 i32.const 0 - call $~lib/typedarray/Int64Array#indexOf + call $~lib/typedarray/Int32Array#indexOf i32.const 3 i32.ne if @@ -14387,9 +15068,9 @@ unreachable end local.get $0 - i64.const 3 + i32.const 3 i32.const 2 - call $~lib/typedarray/Int64Array#indexOf + call $~lib/typedarray/Int32Array#indexOf i32.const 3 i32.ne if @@ -14401,9 +15082,9 @@ unreachable end local.get $0 - i64.const 3 i32.const 3 - call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + call $~lib/typedarray/Int32Array#indexOf i32.const 3 i32.ne if @@ -14415,9 +15096,9 @@ unreachable end local.get $0 - i64.const 3 + i32.const 3 i32.const 4 - call $~lib/typedarray/Int64Array#indexOf + call $~lib/typedarray/Int32Array#indexOf i32.const -1 i32.ne if @@ -14429,9 +15110,9 @@ unreachable end local.get $0 - i64.const 1 + i32.const 1 i32.const 10 - call $~lib/typedarray/Int64Array#indexOf + call $~lib/typedarray/Int32Array#indexOf i32.const -1 i32.ne if @@ -14443,9 +15124,9 @@ unreachable end local.get $0 - i64.const 1 + i32.const 1 i32.const -100 - call $~lib/typedarray/Int64Array#indexOf + call $~lib/typedarray/Int32Array#indexOf i32.const 1 i32.ne if @@ -14459,8 +15140,8 @@ i32.const 1 global.set $~argumentsLength local.get $0 - i64.const 0 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const 0 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs if i32.const 0 i32.const 1312 @@ -14472,8 +15153,8 @@ i32.const 1 global.set $~argumentsLength local.get $0 - i64.const 11 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const 11 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs i32.const -1 i32.ne if @@ -14487,8 +15168,8 @@ i32.const 1 global.set $~argumentsLength local.get $0 - i64.const -1 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const -1 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs i32.const -1 i32.ne if @@ -14502,8 +15183,8 @@ i32.const 1 global.set $~argumentsLength local.get $0 - i64.const 3 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const 3 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs i32.const 3 i32.ne if @@ -14515,9 +15196,9 @@ unreachable end local.get $0 - i64.const 3 + i32.const 3 i32.const 4 - call $~lib/typedarray/Int64Array#lastIndexOf + call $~lib/typedarray/Int32Array#lastIndexOf i32.const 3 i32.ne if @@ -14529,9 +15210,9 @@ unreachable end local.get $0 - i64.const 3 i32.const 3 - call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 3 + call $~lib/typedarray/Int32Array#lastIndexOf i32.const 3 i32.ne if @@ -14543,9 +15224,9 @@ unreachable end local.get $0 - i64.const 3 + i32.const 3 i32.const 2 - call $~lib/typedarray/Int64Array#lastIndexOf + call $~lib/typedarray/Int32Array#lastIndexOf i32.const -1 i32.ne if @@ -14557,9 +15238,9 @@ unreachable end local.get $0 - i64.const 1 + i32.const 1 i32.const 100 - call $~lib/typedarray/Int64Array#lastIndexOf + call $~lib/typedarray/Int32Array#lastIndexOf i32.const 1 i32.ne if @@ -14571,9 +15252,9 @@ unreachable end local.get $0 - i64.const 1 + i32.const 1 i32.const -10 - call $~lib/typedarray/Int64Array#lastIndexOf + call $~lib/typedarray/Int32Array#lastIndexOf i32.const 1 i32.ne if @@ -14585,9 +15266,9 @@ unreachable end local.get $0 - i64.const 1 + i32.const 1 i32.const -11 - call $~lib/typedarray/Int64Array#lastIndexOf + call $~lib/typedarray/Int32Array#lastIndexOf i32.const -1 i32.ne if @@ -14600,11 +15281,11 @@ end local.get $0 i32.const 9 - call $~lib/typedarray/Int64Array#subarray - local.tee $0 - i64.const 3 + call $~lib/typedarray/Uint32Array#subarray + local.tee $1 + i32.const 3 i32.const 0 - call $~lib/typedarray/Int64Array#indexOf + call $~lib/typedarray/Int32Array#indexOf i32.const -1 i32.ne if @@ -14615,10 +15296,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - i64.const 4 + local.get $1 + i32.const 4 i32.const 0 - call $~lib/typedarray/Int64Array#indexOf + call $~lib/typedarray/Int32Array#indexOf if i32.const 0 i32.const 1312 @@ -14627,10 +15308,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - i64.const 5 + local.get $1 + i32.const 5 i32.const 0 - call $~lib/typedarray/Int64Array#indexOf + call $~lib/typedarray/Int32Array#indexOf i32.const 1 i32.ne if @@ -14641,10 +15322,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - i64.const 9 + local.get $1 + i32.const 9 i32.const 0 - call $~lib/typedarray/Int64Array#indexOf + call $~lib/typedarray/Int32Array#indexOf i32.const -1 i32.ne if @@ -14655,10 +15336,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - i64.const 10 + local.get $1 + i32.const 10 i32.const 0 - call $~lib/typedarray/Int64Array#indexOf + call $~lib/typedarray/Int32Array#indexOf i32.const -1 i32.ne if @@ -14669,10 +15350,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - i64.const 11 + local.get $1 + i32.const 11 i32.const 0 - call $~lib/typedarray/Int64Array#indexOf + call $~lib/typedarray/Int32Array#indexOf i32.const -1 i32.ne if @@ -14683,10 +15364,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - i64.const 5 + local.get $1 + i32.const 5 i32.const 1 - call $~lib/typedarray/Int64Array#indexOf + call $~lib/typedarray/Int32Array#indexOf i32.const 1 i32.ne if @@ -14697,10 +15378,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - i64.const 5 + local.get $1 + i32.const 5 i32.const 2 - call $~lib/typedarray/Int64Array#indexOf + call $~lib/typedarray/Int32Array#indexOf i32.const -1 i32.ne if @@ -14713,10 +15394,181 @@ end local.get $3 call $~lib/rt/pure/__release + i32.const 2896 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> + (func $~lib/typedarray/Int64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + if (result i32) + local.get $2 + local.get $3 + i32.ge_s + else + i32.const 1 + end + if + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + 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 $4 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + i64.eq + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + end + local.get $2 + ) + (func $~lib/typedarray/Int64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + if + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $1 + local.get $3 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + i64.eq + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + end + local.get $2 + ) + (func $~lib/typedarray/Int64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int64Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> (local $0 i32) (local $1 i32) (local $2 i32) @@ -14726,8 +15578,9 @@ local.tee $0 local.set $2 local.get $0 - call $~lib/typedarray/Uint64Array#constructor + call $~lib/typedarray/Int64Array#constructor local.tee $3 + call $~lib/rt/pure/__retain local.set $0 loop $for-loop|0 local.get $1 @@ -14740,7 +15593,7 @@ local.get $1 call $~lib/array/Array#__get i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set + call $~lib/typedarray/Int64Array#__set local.get $1 i32.const 1 i32.add @@ -15016,8 +15869,8 @@ end local.get $0 i32.const 9 - call $~lib/typedarray/Uint64Array#subarray - local.tee $0 + call $~lib/typedarray/Int64Array#subarray + local.tee $1 i64.const 3 i32.const 0 call $~lib/typedarray/Int64Array#indexOf @@ -15031,7 +15884,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 4 i32.const 0 call $~lib/typedarray/Int64Array#indexOf @@ -15043,7 +15896,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 5 i32.const 0 call $~lib/typedarray/Int64Array#indexOf @@ -15057,7 +15910,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 9 i32.const 0 call $~lib/typedarray/Int64Array#indexOf @@ -15071,7 +15924,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 10 i32.const 0 call $~lib/typedarray/Int64Array#indexOf @@ -15085,7 +15938,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 11 i32.const 0 call $~lib/typedarray/Int64Array#indexOf @@ -15099,7 +15952,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 5 i32.const 1 call $~lib/typedarray/Int64Array#indexOf @@ -15113,7 +15966,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 5 i32.const 2 call $~lib/typedarray/Int64Array#indexOf @@ -15129,191 +15982,50 @@ end local.get $3 call $~lib/rt/pure/__release + i32.const 2896 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float32Array#indexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $3 - if (result i32) - local.get $2 - local.get $3 - i32.ge_s - else - i32.const 1 - end - if - i32.const -1 - local.set $2 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - end + i32.const 2908 + i32.load + local.tee $0 + local.set $2 + local.get $0 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $0 + loop $for-loop|0 + local.get $1 local.get $2 - i32.const 0 i32.lt_s if - local.get $2 - local.get $3 + local.get $0 + local.get $1 + i32.const 2896 + local.get $1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 i32.add - local.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 - f32.load - local.get $1 - f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - local.set $2 - end - local.get $2 - ) - (func $~lib/typedarray/Float32Array#lastIndexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (local $3 i32) - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $3 - i32.eqz - if - i32.const -1 - local.set $2 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $2 - local.get $3 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $1 - f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - local.set $2 - end - local.get $2 - ) - (func $~lib/typedarray/Float32Array#lastIndexOf@varargs (param $0 i32) (param $1 f32) (result i32) - (local $2 i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Float32Array#lastIndexOf - ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 2908 - i32.load - local.tee $0 - local.set $2 - local.get $0 - call $~lib/typedarray/Float32Array#constructor - local.tee $3 - local.set $0 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2896 - local.get $1 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 + local.set $1 + br $for-loop|0 end end local.get $0 - f32.const 0 + i64.const 0 i32.const 0 - call $~lib/typedarray/Float32Array#indexOf + call $~lib/typedarray/Int64Array#indexOf if i32.const 0 i32.const 1312 @@ -15323,9 +16035,9 @@ unreachable end local.get $0 - f32.const 11 + i64.const 11 i32.const 0 - call $~lib/typedarray/Float32Array#indexOf + call $~lib/typedarray/Int64Array#indexOf i32.const -1 i32.ne if @@ -15337,9 +16049,9 @@ unreachable end local.get $0 - f32.const -1 + i64.const -1 i32.const 0 - call $~lib/typedarray/Float32Array#indexOf + call $~lib/typedarray/Int64Array#indexOf i32.const -1 i32.ne if @@ -15351,9 +16063,9 @@ unreachable end local.get $0 - f32.const 3 + i64.const 3 i32.const 0 - call $~lib/typedarray/Float32Array#indexOf + call $~lib/typedarray/Int64Array#indexOf i32.const 3 i32.ne if @@ -15365,9 +16077,9 @@ unreachable end local.get $0 - f32.const 3 + i64.const 3 i32.const 2 - call $~lib/typedarray/Float32Array#indexOf + call $~lib/typedarray/Int64Array#indexOf i32.const 3 i32.ne if @@ -15379,9 +16091,9 @@ unreachable end local.get $0 - f32.const 3 + i64.const 3 i32.const 3 - call $~lib/typedarray/Float32Array#indexOf + call $~lib/typedarray/Int64Array#indexOf i32.const 3 i32.ne if @@ -15393,9 +16105,9 @@ unreachable end local.get $0 - f32.const 3 + i64.const 3 i32.const 4 - call $~lib/typedarray/Float32Array#indexOf + call $~lib/typedarray/Int64Array#indexOf i32.const -1 i32.ne if @@ -15407,9 +16119,9 @@ unreachable end local.get $0 - f32.const 1 + i64.const 1 i32.const 10 - call $~lib/typedarray/Float32Array#indexOf + call $~lib/typedarray/Int64Array#indexOf i32.const -1 i32.ne if @@ -15421,9 +16133,9 @@ unreachable end local.get $0 - f32.const 1 + i64.const 1 i32.const -100 - call $~lib/typedarray/Float32Array#indexOf + call $~lib/typedarray/Int64Array#indexOf i32.const 1 i32.ne if @@ -15437,8 +16149,8 @@ i32.const 1 global.set $~argumentsLength local.get $0 - f32.const 0 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i64.const 0 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs if i32.const 0 i32.const 1312 @@ -15450,8 +16162,8 @@ i32.const 1 global.set $~argumentsLength local.get $0 - f32.const 11 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i64.const 11 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs i32.const -1 i32.ne if @@ -15465,8 +16177,8 @@ i32.const 1 global.set $~argumentsLength local.get $0 - f32.const -1 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i64.const -1 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs i32.const -1 i32.ne if @@ -15480,8 +16192,8 @@ i32.const 1 global.set $~argumentsLength local.get $0 - f32.const 3 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i64.const 3 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs i32.const 3 i32.ne if @@ -15493,9 +16205,9 @@ unreachable end local.get $0 - f32.const 3 + i64.const 3 i32.const 4 - call $~lib/typedarray/Float32Array#lastIndexOf + call $~lib/typedarray/Int64Array#lastIndexOf i32.const 3 i32.ne if @@ -15507,9 +16219,9 @@ unreachable end local.get $0 - f32.const 3 + i64.const 3 i32.const 3 - call $~lib/typedarray/Float32Array#lastIndexOf + call $~lib/typedarray/Int64Array#lastIndexOf i32.const 3 i32.ne if @@ -15521,9 +16233,9 @@ unreachable end local.get $0 - f32.const 3 + i64.const 3 i32.const 2 - call $~lib/typedarray/Float32Array#lastIndexOf + call $~lib/typedarray/Int64Array#lastIndexOf i32.const -1 i32.ne if @@ -15535,9 +16247,9 @@ unreachable end local.get $0 - f32.const 1 + i64.const 1 i32.const 100 - call $~lib/typedarray/Float32Array#lastIndexOf + call $~lib/typedarray/Int64Array#lastIndexOf i32.const 1 i32.ne if @@ -15549,9 +16261,9 @@ unreachable end local.get $0 - f32.const 1 + i64.const 1 i32.const -10 - call $~lib/typedarray/Float32Array#lastIndexOf + call $~lib/typedarray/Int64Array#lastIndexOf i32.const 1 i32.ne if @@ -15563,9 +16275,9 @@ unreachable end local.get $0 - f32.const 1 + i64.const 1 i32.const -11 - call $~lib/typedarray/Float32Array#lastIndexOf + call $~lib/typedarray/Int64Array#lastIndexOf i32.const -1 i32.ne if @@ -15578,11 +16290,11 @@ end local.get $0 i32.const 9 - call $~lib/typedarray/Float32Array#subarray - local.tee $0 - f32.const 3 + call $~lib/typedarray/Uint64Array#subarray + local.tee $1 + i64.const 3 i32.const 0 - call $~lib/typedarray/Float32Array#indexOf + call $~lib/typedarray/Int64Array#indexOf i32.const -1 i32.ne if @@ -15593,10 +16305,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - f32.const 4 + local.get $1 + i64.const 4 i32.const 0 - call $~lib/typedarray/Float32Array#indexOf + call $~lib/typedarray/Int64Array#indexOf if i32.const 0 i32.const 1312 @@ -15605,10 +16317,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - f32.const 5 + local.get $1 + i64.const 5 i32.const 0 - call $~lib/typedarray/Float32Array#indexOf + call $~lib/typedarray/Int64Array#indexOf i32.const 1 i32.ne if @@ -15619,10 +16331,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - f32.const 9 + local.get $1 + i64.const 9 i32.const 0 - call $~lib/typedarray/Float32Array#indexOf + call $~lib/typedarray/Int64Array#indexOf i32.const -1 i32.ne if @@ -15633,10 +16345,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - f32.const 10 + local.get $1 + i64.const 10 i32.const 0 - call $~lib/typedarray/Float32Array#indexOf + call $~lib/typedarray/Int64Array#indexOf i32.const -1 i32.ne if @@ -15647,10 +16359,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - f32.const 11 + local.get $1 + i64.const 11 i32.const 0 - call $~lib/typedarray/Float32Array#indexOf + call $~lib/typedarray/Int64Array#indexOf i32.const -1 i32.ne if @@ -15661,10 +16373,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - f32.const 5 + local.get $1 + i64.const 5 i32.const 1 - call $~lib/typedarray/Float32Array#indexOf + call $~lib/typedarray/Int64Array#indexOf i32.const 1 i32.ne if @@ -15675,10 +16387,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - f32.const 5 + local.get $1 + i64.const 5 i32.const 2 - call $~lib/typedarray/Float32Array#indexOf + call $~lib/typedarray/Int64Array#indexOf i32.const -1 i32.ne if @@ -15691,15 +16403,22 @@ end local.get $3 call $~lib/rt/pure/__release + i32.const 2896 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Float64Array#indexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#indexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + (local $4 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u local.tee $3 if (result i32) @@ -15710,9 +16429,11 @@ i32.const 1 end if + local.get $0 + call $~lib/rt/pure/__release i32.const -1 local.set $2 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 end local.get $2 i32.const 0 @@ -15731,21 +16452,25 @@ end local.get $0 i32.load offset=4 - local.set $0 + local.set $4 loop $while-continue|0 local.get $2 local.get $3 i32.lt_s if - local.get $0 + local.get $4 local.get $2 - i32.const 3 + i32.const 2 i32.shl i32.add - f64.load + f32.load local.get $1 - f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + f32.eq + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + end local.get $2 i32.const 1 i32.add @@ -15753,24 +16478,30 @@ br $while-continue|0 end end + local.get $0 + call $~lib/rt/pure/__release i32.const -1 local.set $2 end local.get $2 ) - (func $~lib/typedarray/Float64Array#lastIndexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#lastIndexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u local.tee $3 i32.eqz if + local.get $0 + call $~lib/rt/pure/__release i32.const -1 local.set $2 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 end local.get $2 local.get $3 @@ -15790,21 +16521,25 @@ local.set $2 local.get $0 i32.load offset=4 - local.set $0 + local.set $3 loop $while-continue|0 local.get $2 i32.const 0 i32.ge_s if - local.get $0 + local.get $3 local.get $2 - i32.const 3 + i32.const 2 i32.shl i32.add - f64.load + f32.load local.get $1 - f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + f32.eq + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + end local.get $2 i32.const 1 i32.sub @@ -15812,12 +16547,14 @@ br $while-continue|0 end end + local.get $0 + call $~lib/rt/pure/__release i32.const -1 local.set $2 end local.get $2 ) - (func $~lib/typedarray/Float64Array#lastIndexOf@varargs (param $0 i32) (param $1 f64) (result i32) + (func $~lib/typedarray/Float32Array#lastIndexOf@varargs (param $0 i32) (param $1 f32) (result i32) (local $2 i32) block $1of1 block $0of1 @@ -15831,16 +16568,16 @@ end local.get $0 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u local.set $2 end local.get $0 local.get $1 local.get $2 - call $~lib/typedarray/Float64Array#lastIndexOf + call $~lib/typedarray/Float32Array#lastIndexOf ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> (local $0 i32) (local $1 i32) (local $2 i32) @@ -15850,8 +16587,9 @@ local.tee $0 local.set $2 local.get $0 - call $~lib/typedarray/Float64Array#constructor + call $~lib/typedarray/Float32Array#constructor local.tee $3 + call $~lib/rt/pure/__retain local.set $0 loop $for-loop|0 local.get $1 @@ -15863,8 +16601,8 @@ i32.const 2896 local.get $1 call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set local.get $1 i32.const 1 i32.add @@ -15873,9 +16611,9 @@ end end local.get $0 - f64.const 0 + f32.const 0 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf + call $~lib/typedarray/Float32Array#indexOf if i32.const 0 i32.const 1312 @@ -15885,9 +16623,9 @@ unreachable end local.get $0 - f64.const 11 + f32.const 11 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf + call $~lib/typedarray/Float32Array#indexOf i32.const -1 i32.ne if @@ -15899,9 +16637,9 @@ unreachable end local.get $0 - f64.const -1 + f32.const -1 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf + call $~lib/typedarray/Float32Array#indexOf i32.const -1 i32.ne if @@ -15913,9 +16651,9 @@ unreachable end local.get $0 - f64.const 3 + f32.const 3 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf + call $~lib/typedarray/Float32Array#indexOf i32.const 3 i32.ne if @@ -15927,9 +16665,9 @@ unreachable end local.get $0 - f64.const 3 + f32.const 3 i32.const 2 - call $~lib/typedarray/Float64Array#indexOf + call $~lib/typedarray/Float32Array#indexOf i32.const 3 i32.ne if @@ -15941,9 +16679,9 @@ unreachable end local.get $0 - f64.const 3 + f32.const 3 i32.const 3 - call $~lib/typedarray/Float64Array#indexOf + call $~lib/typedarray/Float32Array#indexOf i32.const 3 i32.ne if @@ -15955,9 +16693,9 @@ unreachable end local.get $0 - f64.const 3 + f32.const 3 i32.const 4 - call $~lib/typedarray/Float64Array#indexOf + call $~lib/typedarray/Float32Array#indexOf i32.const -1 i32.ne if @@ -15969,9 +16707,9 @@ unreachable end local.get $0 - f64.const 1 + f32.const 1 i32.const 10 - call $~lib/typedarray/Float64Array#indexOf + call $~lib/typedarray/Float32Array#indexOf i32.const -1 i32.ne if @@ -15983,9 +16721,9 @@ unreachable end local.get $0 - f64.const 1 + f32.const 1 i32.const -100 - call $~lib/typedarray/Float64Array#indexOf + call $~lib/typedarray/Float32Array#indexOf i32.const 1 i32.ne if @@ -15999,8 +16737,8 @@ i32.const 1 global.set $~argumentsLength local.get $0 - f64.const 0 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs + f32.const 0 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs if i32.const 0 i32.const 1312 @@ -16012,8 +16750,8 @@ i32.const 1 global.set $~argumentsLength local.get $0 - f64.const 11 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs + f32.const 11 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs i32.const -1 i32.ne if @@ -16027,8 +16765,8 @@ i32.const 1 global.set $~argumentsLength local.get $0 - f64.const -1 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs + f32.const -1 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs i32.const -1 i32.ne if @@ -16042,8 +16780,8 @@ i32.const 1 global.set $~argumentsLength local.get $0 - f64.const 3 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs + f32.const 3 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs i32.const 3 i32.ne if @@ -16055,9 +16793,9 @@ unreachable end local.get $0 - f64.const 3 + f32.const 3 i32.const 4 - call $~lib/typedarray/Float64Array#lastIndexOf + call $~lib/typedarray/Float32Array#lastIndexOf i32.const 3 i32.ne if @@ -16069,9 +16807,9 @@ unreachable end local.get $0 - f64.const 3 + f32.const 3 i32.const 3 - call $~lib/typedarray/Float64Array#lastIndexOf + call $~lib/typedarray/Float32Array#lastIndexOf i32.const 3 i32.ne if @@ -16083,9 +16821,9 @@ unreachable end local.get $0 - f64.const 3 + f32.const 3 i32.const 2 - call $~lib/typedarray/Float64Array#lastIndexOf + call $~lib/typedarray/Float32Array#lastIndexOf i32.const -1 i32.ne if @@ -16097,9 +16835,9 @@ unreachable end local.get $0 - f64.const 1 + f32.const 1 i32.const 100 - call $~lib/typedarray/Float64Array#lastIndexOf + call $~lib/typedarray/Float32Array#lastIndexOf i32.const 1 i32.ne if @@ -16111,9 +16849,9 @@ unreachable end local.get $0 - f64.const 1 + f32.const 1 i32.const -10 - call $~lib/typedarray/Float64Array#lastIndexOf + call $~lib/typedarray/Float32Array#lastIndexOf i32.const 1 i32.ne if @@ -16125,9 +16863,9 @@ unreachable end local.get $0 - f64.const 1 + f32.const 1 i32.const -11 - call $~lib/typedarray/Float64Array#lastIndexOf + call $~lib/typedarray/Float32Array#lastIndexOf i32.const -1 i32.ne if @@ -16139,13 +16877,12 @@ unreachable end local.get $0 - i32.const 4 i32.const 9 - call $~lib/typedarray/Float64Array#subarray - local.tee $0 - f64.const 3 + call $~lib/typedarray/Float32Array#subarray + local.tee $1 + f32.const 3 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf + call $~lib/typedarray/Float32Array#indexOf i32.const -1 i32.ne if @@ -16156,10 +16893,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - f64.const 4 + local.get $1 + f32.const 4 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf + call $~lib/typedarray/Float32Array#indexOf if i32.const 0 i32.const 1312 @@ -16168,10 +16905,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - f64.const 5 + local.get $1 + f32.const 5 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf + call $~lib/typedarray/Float32Array#indexOf i32.const 1 i32.ne if @@ -16182,10 +16919,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - f64.const 9 + local.get $1 + f32.const 9 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf + call $~lib/typedarray/Float32Array#indexOf i32.const -1 i32.ne if @@ -16196,10 +16933,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - f64.const 10 + local.get $1 + f32.const 10 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf + call $~lib/typedarray/Float32Array#indexOf i32.const -1 i32.ne if @@ -16210,10 +16947,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - f64.const 11 + local.get $1 + f32.const 11 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf + call $~lib/typedarray/Float32Array#indexOf i32.const -1 i32.ne if @@ -16224,10 +16961,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - f64.const 5 + local.get $1 + f32.const 5 i32.const 1 - call $~lib/typedarray/Float64Array#indexOf + call $~lib/typedarray/Float32Array#indexOf i32.const 1 i32.ne if @@ -16238,10 +16975,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - f64.const 5 + local.get $1 + f32.const 5 i32.const 2 - call $~lib/typedarray/Float64Array#indexOf + call $~lib/typedarray/Float32Array#indexOf i32.const -1 i32.ne if @@ -16254,661 +16991,732 @@ end local.get $3 call $~lib/rt/pure/__release - local.get $0 + i32.const 2896 call $~lib/rt/pure/__release - ) - (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - local.get $0 - i32.const 100 - i32.lt_u - select - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add local.get $0 - i32.const 10000000 - i32.lt_u - select - local.get $0 - i32.const 100000 - i32.lt_u - select + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Float64Array#indexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) - loop $do-continue|0 - local.get $1 - i32.const 10 - i32.rem_u - local.set $3 - local.get $1 - i32.const 10 - i32.div_u - local.set $1 + (local $4 i32) + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + if (result i32) + local.get $2 + local.get $3 + i32.ge_s + else + i32.const 1 + end + if + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + 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 $4 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $1 + f64.eq + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + end + local.get $2 + ) + (func $~lib/typedarray/Float64Array#lastIndexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.eqz + if + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + end local.get $2 + local.get $3 + i32.add + local.get $3 i32.const 1 i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add + local.get $2 + local.get $2 local.get $3 - i32.const 48 - i32.add - i32.store16 - local.get $1 - br_if $do-continue|0 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $3 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $1 + f64.eq + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + i32.const -1 + local.set $2 end + local.get $2 ) - (func $~lib/util/number/itoa32 (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#lastIndexOf@varargs (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Float64Array#lastIndexOf + ) + (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> + (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) + i32.const 2908 + i32.load + local.tee $0 + local.set $2 local.get $0 - i32.eqz - if - i32.const 3136 - return + call $~lib/typedarray/Float64Array#constructor + local.tee $3 + call $~lib/rt/pure/__retain + local.set $0 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2896 + local.get $1 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end end local.get $0 - i32.const 31 - i32.shr_u - local.tee $1 + f64.const 0 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf if i32.const 0 - local.get $0 - i32.sub - local.set $0 + i32.const 1312 + i32.const 557 + i32.const 3 + call $~lib/builtins/abort + unreachable end local.get $0 - call $~lib/util/number/decimalCount32 - local.get $1 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $2 + f64.const 11 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 558 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.get $3 - call $~lib/util/number/utoa_dec_simple - local.get $1 + f64.const -1 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne if - local.get $2 - i32.const 45 - i32.store16 + i32.const 0 + i32.const 1312 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $2 - call $~lib/rt/pure/__retain - ) - (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/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $0 - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s + f64.const 3 i32.const 0 - i32.lt_s - local.tee $1 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.ne if - local.get $0 - i32.const 45 - i32.store16 i32.const 0 - local.get $2 - i32.sub - local.set $2 + i32.const 1312 + i32.const 560 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 10 - i32.lt_u + local.get $0 + f64.const 3 + i32.const 2 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.ne if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 48 - i32.or - i32.store16 - local.get $1 - i32.const 1 - i32.add - return + i32.const 0 + i32.const 1312 + i32.const 561 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - local.tee $2 - call $~lib/util/number/decimalCount32 - local.get $1 - i32.add - local.set $1 local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa_dec_simple - local.get $1 - ) - (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - i32.const 0 + f64.const 3 + i32.const 3 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/string/String#get:length - local.tee $2 - i32.const 0 - local.get $2 - i32.lt_s - select - local.tee $3 - local.get $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $1 - local.get $2 - local.get $1 - local.get $2 - i32.lt_s - select - local.tee $1 - local.get $3 - local.get $1 - i32.gt_s - select - i32.const 1 - i32.shl - local.tee $4 - local.get $3 - local.get $1 - local.get $3 - local.get $1 - i32.lt_s - select - i32.const 1 - i32.shl - local.tee $1 - i32.sub - local.tee $3 - i32.eqz + f64.const 3 + i32.const 4 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne if - i32.const 2928 - return + i32.const 0 + i32.const 1312 + i32.const 563 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 0 - local.get $4 - local.get $2 - i32.const 1 - i32.shl - i32.eq - local.get $1 - select + local.get $0 + f64.const 1 + i32.const 10 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne if - local.get $0 - call $~lib/rt/pure/__retain - return + i32.const 0 + i32.const 1312 + i32.const 564 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $2 local.get $0 - local.get $1 - i32.add - local.get $3 - call $~lib/memory/memory.copy - local.get $2 - call $~lib/rt/pure/__retain - ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 + f64.const 1 + i32.const -100 + call $~lib/typedarray/Float64Array#indexOf i32.const 1 - i32.sub - local.tee $3 - i32.const 0 - i32.lt_s + i32.ne if - i32.const 2928 - return + i32.const 0 + i32.const 1312 + i32.const 565 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - i32.eqz + i32.const 1 + global.set $~argumentsLength + local.get $0 + f64.const 0 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs if - local.get $0 - i32.load8_s - call $~lib/util/number/itoa32 - return + i32.const 0 + i32.const 1312 + i32.const 567 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - i32.const 3264 - call $~lib/string/String#get:length - local.tee $4 - i32.const 11 - i32.add - i32.mul - i32.const 11 - i32.add - local.tee $6 i32.const 1 - i32.shl + global.set $~argumentsLength + local.get $0 + f64.const 11 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 568 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $1 - loop $for-loop|0 - local.get $5 - local.get $3 - i32.lt_s - if - local.get $1 - local.get $2 - local.get $0 - local.get $5 - i32.add - i32.load8_s - call $~lib/util/number/itoa_stream - local.get $2 - i32.add - local.set $2 - local.get $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 3264 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $6 - local.get $1 - local.get $2 + global.set $~argumentsLength local.get $0 - local.get $3 - i32.add - i32.load8_s - call $~lib/util/number/itoa_stream - local.get $2 - i32.add - local.tee $0 - i32.gt_s + f64.const -1 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const -1 + i32.ne if - local.get $1 - local.get $0 - call $~lib/string/String#substring - local.get $1 - call $~lib/rt/pure/__release - return + i32.const 0 + i32.const 1312 + i32.const 569 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $1 - ) - (func $~lib/typedarray/Int8Array#join (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 + i32.const 1 + global.set $~argumentsLength local.get $0 - i32.load offset=8 - call $~lib/util/string/joinIntegerArray - ) - (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) + f64.const 3 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 570 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - i32.const 0 - local.get $2 + f64.const 3 i32.const 4 - i32.ge_u - select + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 3 + i32.ne if - loop $do-continue|0 - local.get $0 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 4 - i32.ge_u - br_if $do-continue|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $3 - i32.const 1 - i32.sub - local.set $2 - local.get $3 - if - local.get $0 - i32.load16_u - local.tee $3 - local.get $1 - i32.load16_u - local.tee $4 - i32.ne - if - local.get $3 - local.get $4 - i32.sub - return - end - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end + i32.const 0 + i32.const 1312 + i32.const 571 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 0 - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) local.get $0 - local.get $1 - i32.eq + f64.const 3 + i32.const 3 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 3 + i32.ne if - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - i32.const 1 - local.get $0 - select - br_if $folding-inner0 - local.get $0 - call $~lib/string/String#get:length - local.tee $2 - local.get $1 - call $~lib/string/String#get:length - i32.ne - br_if $folding-inner0 - local.get $0 - local.get $1 - local.get $2 - call $~lib/util/string/compareImpl - i32.eqz - return + i32.const 0 + i32.const 1312 + i32.const 572 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 0 - ) - (func $~lib/util/number/utoa32 (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) local.get $0 - i32.eqz + f64.const 3 + i32.const 2 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const -1 + i32.ne if - i32.const 3136 - return + i32.const 0 + i32.const 1312 + i32.const 573 + i32.const 3 + call $~lib/builtins/abort + unreachable end local.get $0 - call $~lib/util/number/decimalCount32 - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $0 - local.get $1 - call $~lib/util/number/utoa_dec_simple - local.get $2 - call $~lib/rt/pure/__retain - ) - (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - local.get $1 + f64.const 1 + i32.const 100 + call $~lib/typedarray/Float64Array#lastIndexOf i32.const 1 - i32.shl - i32.add - local.set $0 - local.get $2 - i32.const 255 - i32.and - i32.const 10 - i32.lt_u + i32.ne if - local.get $0 - local.get $2 - i32.const 255 - i32.and - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return + i32.const 0 + i32.const 1312 + i32.const 574 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $2 - i32.const 255 - i32.and - local.tee $2 - call $~lib/util/number/decimalCount32 - local.set $1 local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa_dec_simple + f64.const 1 + i32.const -10 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + f64.const 1 + i32.const -11 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Float64Array#subarray + local.tee $1 + f64.const 3 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 580 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + f64.const 4 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + if + i32.const 0 + i32.const 1312 + i32.const 581 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 + f64.const 5 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf i32.const 1 - i32.sub - local.tee $3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 582 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 9 i32.const 0 - i32.lt_s + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne if - i32.const 2928 - return + i32.const 0 + i32.const 1312 + i32.const 583 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - i32.eqz + local.get $1 + f64.const 10 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne if - local.get $0 - i32.load8_u - call $~lib/util/number/utoa32 - return + i32.const 0 + i32.const 1312 + i32.const 584 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - i32.const 3264 - call $~lib/string/String#get:length - local.tee $4 - i32.const 10 - i32.add - i32.mul - i32.const 10 - i32.add - local.tee $6 + local.get $1 + f64.const 11 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 585 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 5 i32.const 1 - i32.shl + call $~lib/typedarray/Float64Array#indexOf i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $1 - loop $for-loop|0 - local.get $5 - local.get $3 - i32.lt_s - if - local.get $1 - local.get $2 - local.get $0 - local.get $5 - i32.add - i32.load8_u - call $~lib/util/number/itoa_stream - local.get $2 - i32.add - local.set $2 - local.get $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 3264 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 586 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $6 local.get $1 - local.get $2 - local.get $0 - local.get $3 - i32.add - i32.load8_u - call $~lib/util/number/itoa_stream - local.get $2 - i32.add - local.tee $0 - i32.gt_s + f64.const 5 + i32.const 2 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne if - local.get $1 - local.get $0 - call $~lib/string/String#substring - local.get $1 - call $~lib/rt/pure/__release - return + i32.const 0 + i32.const 1312 + i32.const 587 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $1 - ) - (func $~lib/typedarray/Uint8Array#join (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 + local.get $3 + call $~lib/rt/pure/__release + i32.const 2896 + call $~lib/rt/pure/__release local.get $0 - i32.load offset=8 - call $~lib/util/string/joinIntegerArray + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/decimalCount32 (param $0 i32) (result i32) local.get $0 - local.get $1 + i32.const 10 + i32.ge_u i32.const 1 - i32.shl i32.add - local.set $0 + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + local.get $0 + i32.const 100 + i32.lt_u + select + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + local.get $0 + i32.const 10000000 + i32.lt_u + select + local.get $0 + i32.const 100000 + i32.lt_u + select + ) + (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + loop $do-continue|0 + local.get $1 + i32.const 10 + i32.rem_u + local.set $3 + local.get $1 + i32.const 10 + i32.div_u + local.set $1 + local.get $0 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 48 + i32.add + i32.store16 + local.get $1 + br_if $do-continue|0 + end + ) + (func $~lib/util/number/itoa32 (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + i32.const 3136 + return + end + local.get $0 + i32.const 31 + i32.shr_u + local.tee $1 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + call $~lib/util/number/decimalCount32 + local.get $1 + i32.add + local.tee $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.tee $2 + local.get $0 + local.get $3 + call $~lib/util/number/utoa_dec_simple + local.get $1 + if + local.get $2 + i32.const 45 + i32.store16 + end local.get $2 + call $~lib/rt/pure/__retain + ) + (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/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + local.get $1 + i32.const 1 i32.shl - i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 24 + i32.shl + i32.const 24 i32.shr_s i32.const 0 i32.lt_s @@ -16923,9 +17731,9 @@ local.set $2 end local.get $2 - i32.const 16 + i32.const 24 i32.shl - i32.const 16 + i32.const 24 i32.shr_s i32.const 10 i32.lt_u @@ -16936,9 +17744,9 @@ i32.shl i32.add local.get $2 - i32.const 16 + i32.const 24 i32.shl - i32.const 16 + i32.const 24 i32.shr_s i32.const 48 i32.or @@ -16949,9 +17757,9 @@ return end local.get $2 - i32.const 16 + i32.const 24 i32.shl - i32.const 16 + i32.const 24 i32.shr_s local.tee $2 call $~lib/util/number/decimalCount32 @@ -16964,40 +17772,121 @@ call $~lib/util/number/utoa_dec_simple local.get $1 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 0 + local.get $0 + call $~lib/string/String#get:length + local.tee $2 + i32.const 0 + local.get $2 + i32.lt_s + select + local.tee $3 + local.get $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + local.tee $1 + local.get $3 + local.get $1 + i32.gt_s + select + i32.const 1 + i32.shl + local.tee $4 + local.get $3 + local.get $1 + local.get $3 + local.get $1 + i32.lt_s + select + i32.const 1 + i32.shl + local.tee $1 + i32.sub + local.tee $3 + i32.eqz + if + i32.const 2928 + return + end + i32.const 0 + local.get $4 + local.get $2 + i32.const 1 + i32.shl + i32.eq + local.get $1 + select + if + local.get $0 + call $~lib/rt/pure/__retain + return + end + local.get $3 + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.tee $2 + local.get $0 + local.get $1 + i32.add + local.get $3 + call $~lib/memory/memory.copy + local.get $2 + call $~lib/rt/pure/__retain + ) + (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.get $2 + call $~lib/rt/pure/__retain + local.set $2 local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $4 i32.const 0 i32.lt_s if + local.get $2 + call $~lib/rt/pure/__release i32.const 2928 return end - local.get $3 + local.get $4 i32.eqz if local.get $0 - i32.load16_s + i32.load8_s call $~lib/util/number/itoa32 + local.get $2 + call $~lib/rt/pure/__release return end - local.get $3 - i32.const 3264 + local.get $4 + local.get $2 call $~lib/string/String#get:length - local.tee $4 + local.tee $5 i32.const 11 i32.add i32.mul i32.const 11 i32.add - local.tee $6 + local.tee $7 i32.const 1 i32.shl i32.const 1 @@ -17005,57 +17894,53 @@ call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.lt_s if local.get $1 - local.get $2 + local.get $3 local.get $0 - local.get $5 - i32.const 1 - i32.shl + local.get $6 i32.add - i32.load16_s - call $~lib/util/number/itoa_stream - local.get $2 + i32.load8_s + call $~lib/util/number/itoa_stream + local.get $3 i32.add - local.set $2 - local.get $4 + local.set $3 + local.get $5 if local.get $1 - local.get $2 + local.get $3 i32.const 1 i32.shl i32.add - i32.const 3264 - local.get $4 + local.get $2 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.add - local.set $2 + local.set $3 end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end - local.get $6 + local.get $7 local.get $1 - local.get $2 - local.get $0 local.get $3 - i32.const 1 - i32.shl + local.get $0 + local.get $4 i32.add - i32.load16_s - call $~lib/util/number/itoa_stream - local.get $2 + i32.load8_s + call $~lib/util/number/itoa_stream + local.get $3 i32.add local.tee $0 i32.gt_s @@ -17063,22 +17948,190 @@ local.get $1 local.get $0 call $~lib/string/String#substring + local.get $2 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release return end + local.get $2 + call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Int16Array#join (param $0 i32) (result i32) + (func $~lib/typedarray/Int8Array#join (param $0 i32) (result i32) local.get $0 i32.load offset=4 local.get $0 i32.load offset=8 + i32.const 3264 + call $~lib/util/string/joinIntegerArray + i32.const 3264 + call $~lib/rt/pure/__release + ) + (func $~lib/util/string/compareImpl (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 + call $~lib/rt/pure/__retain + local.tee $4 + local.tee $3 + i32.const 7 + i32.and + local.get $1 + call $~lib/rt/pure/__retain + local.tee $5 + local.tee $1 + i32.const 7 + i32.and + i32.or + i32.eqz + i32.const 0 + local.get $2 + i32.const 4 + i32.ge_u + select + if + loop $do-continue|0 + local.get $3 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 4 + i32.ge_u + br_if $do-continue|0 + end + end + end + loop $while-continue|1 + local.get $2 + local.tee $0 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + if + local.get $3 + i32.load16_u + local.tee $0 + local.get $1 + i32.load16_u + local.tee $6 + i32.ne + if + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + local.get $6 + i32.sub + return + end + local.get $3 + i32.const 2 + i32.add + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 0 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.tee $0 + local.get $1 + call $~lib/rt/pure/__retain + local.tee $1 + i32.eq + if + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 1 + return + end + block $folding-inner0 + local.get $1 + i32.eqz + i32.const 1 + local.get $0 + select + br_if $folding-inner0 + local.get $0 + call $~lib/string/String#get:length + local.tee $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + br_if $folding-inner0 + local.get $0 + local.get $1 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + return + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 0 + ) + (func $~lib/util/number/utoa32 (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + i32.const 3136 + return + end + local.get $0 + call $~lib/util/number/decimalCount32 + local.tee $1 i32.const 1 - i32.shr_u - call $~lib/util/string/joinIntegerArray + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.tee $2 + local.get $0 + local.get $1 + call $~lib/util/number/utoa_dec_simple + local.get $2 + call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 i32.const 1 @@ -17086,14 +18139,14 @@ i32.add local.set $0 local.get $2 - i32.const 65535 + i32.const 255 i32.and i32.const 10 i32.lt_u if local.get $0 local.get $2 - i32.const 65535 + i32.const 255 i32.and i32.const 48 i32.or @@ -17102,7 +18155,7 @@ return end local.get $2 - i32.const 65535 + i32.const 255 i32.and local.tee $2 call $~lib/util/number/decimalCount32 @@ -17113,40 +18166,47 @@ call $~lib/util/number/utoa_dec_simple local.get $1 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $4 i32.const 0 i32.lt_s if + local.get $2 + call $~lib/rt/pure/__release i32.const 2928 return end - local.get $3 + local.get $4 i32.eqz if local.get $0 - i32.load16_u + i32.load8_u call $~lib/util/number/utoa32 + local.get $2 + call $~lib/rt/pure/__release return end - local.get $3 - i32.const 3264 + local.get $4 + local.get $2 call $~lib/string/String#get:length - local.tee $4 + local.tee $5 i32.const 10 i32.add i32.mul i32.const 10 i32.add - local.tee $6 + local.tee $7 i32.const 1 i32.shl i32.const 1 @@ -17154,57 +18214,53 @@ call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.lt_s if local.get $1 - local.get $2 + local.get $3 local.get $0 - local.get $5 - i32.const 1 - i32.shl + local.get $6 i32.add - i32.load16_u - call $~lib/util/number/itoa_stream - local.get $2 + i32.load8_u + call $~lib/util/number/itoa_stream + local.get $3 i32.add - local.set $2 - local.get $4 + local.set $3 + local.get $5 if local.get $1 - local.get $2 + local.get $3 i32.const 1 i32.shl i32.add - i32.const 3264 - local.get $4 + local.get $2 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.add - local.set $2 + local.set $3 end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end - local.get $6 + local.get $7 local.get $1 - local.get $2 - local.get $0 local.get $3 - i32.const 1 - i32.shl + local.get $0 + local.get $4 i32.add - i32.load16_u - call $~lib/util/number/itoa_stream - local.get $2 + i32.load8_u + call $~lib/util/number/itoa_stream + local.get $3 i32.add local.tee $0 i32.gt_s @@ -17212,22 +18268,27 @@ local.get $1 local.get $0 call $~lib/string/String#substring + local.get $2 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release return end + local.get $2 + call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Uint16Array#join (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#join (param $0 i32) (result i32) local.get $0 i32.load offset=4 local.get $0 i32.load offset=8 - i32.const 1 - i32.shr_u - call $~lib/util/string/joinIntegerArray + i32.const 3264 + call $~lib/util/string/joinIntegerArray + i32.const 3264 + call $~lib/rt/pure/__release ) - (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 i32.const 1 @@ -17235,6 +18296,10 @@ i32.add local.set $0 local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s i32.const 0 i32.lt_s local.tee $1 @@ -17248,6 +18313,10 @@ local.set $2 end local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s i32.const 10 i32.lt_u if @@ -17257,6 +18326,10 @@ i32.shl i32.add local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s i32.const 48 i32.or i32.store16 @@ -17265,50 +18338,63 @@ i32.add return end - local.get $0 - local.get $2 local.get $2 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + local.tee $2 call $~lib/util/number/decimalCount32 local.get $1 i32.add - local.tee $0 - call $~lib/util/number/utoa_dec_simple + local.set $1 local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa_dec_simple + local.get $1 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $4 i32.const 0 i32.lt_s if + local.get $2 + call $~lib/rt/pure/__release i32.const 2928 return end - local.get $3 + local.get $4 i32.eqz if local.get $0 - i32.load + i32.load16_s call $~lib/util/number/itoa32 + local.get $2 + call $~lib/rt/pure/__release return end - local.get $3 - i32.const 3264 + local.get $4 + local.get $2 call $~lib/string/String#get:length - local.tee $4 + local.tee $5 i32.const 11 i32.add i32.mul i32.const 11 i32.add - local.tee $6 + local.tee $7 i32.const 1 i32.shl i32.const 1 @@ -17316,57 +18402,57 @@ call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.lt_s if local.get $1 - local.get $2 + local.get $3 local.get $0 - local.get $5 - i32.const 2 + local.get $6 + i32.const 1 i32.shl i32.add - i32.load - call $~lib/util/number/itoa_stream - local.get $2 + i32.load16_s + call $~lib/util/number/itoa_stream + local.get $3 i32.add - local.set $2 - local.get $4 + local.set $3 + local.get $5 if local.get $1 - local.get $2 + local.get $3 i32.const 1 i32.shl i32.add - i32.const 3264 - local.get $4 + local.get $2 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.add - local.set $2 + local.set $3 end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end - local.get $6 + local.get $7 local.get $1 - local.get $2 - local.get $0 local.get $3 - i32.const 2 + local.get $0 + local.get $4 + i32.const 1 i32.shl i32.add - i32.load - call $~lib/util/number/itoa_stream - local.get $2 + i32.load16_s + call $~lib/util/number/itoa_stream + local.get $3 i32.add local.tee $0 i32.gt_s @@ -17374,22 +18460,29 @@ local.get $1 local.get $0 call $~lib/string/String#substring + local.get $2 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release return end + local.get $2 + call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Int32Array#join (param $0 i32) (result i32) + (func $~lib/typedarray/Int16Array#join (param $0 i32) (result i32) local.get $0 i32.load offset=4 local.get $0 i32.load offset=8 - i32.const 2 + i32.const 1 i32.shr_u - call $~lib/util/string/joinIntegerArray + i32.const 3264 + call $~lib/util/string/joinIntegerArray + i32.const 3264 + call $~lib/rt/pure/__release ) - (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 i32.const 1 @@ -17397,59 +18490,74 @@ i32.add local.set $0 local.get $2 + i32.const 65535 + i32.and i32.const 10 i32.lt_u if local.get $0 local.get $2 + i32.const 65535 + i32.and i32.const 48 i32.or i32.store16 i32.const 1 return end - local.get $0 - local.get $2 local.get $2 + i32.const 65535 + i32.and + local.tee $2 call $~lib/util/number/decimalCount32 - local.tee $0 - call $~lib/util/number/utoa_dec_simple + local.set $1 local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa_dec_simple + local.get $1 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $4 i32.const 0 i32.lt_s if + local.get $2 + call $~lib/rt/pure/__release i32.const 2928 return end - local.get $3 + local.get $4 i32.eqz if local.get $0 - i32.load + i32.load16_u call $~lib/util/number/utoa32 + local.get $2 + call $~lib/rt/pure/__release return end - local.get $3 - i32.const 3264 + local.get $4 + local.get $2 call $~lib/string/String#get:length - local.tee $4 + local.tee $5 i32.const 10 i32.add i32.mul i32.const 10 i32.add - local.tee $6 + local.tee $7 i32.const 1 i32.shl i32.const 1 @@ -17457,57 +18565,57 @@ call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.lt_s if local.get $1 - local.get $2 + local.get $3 local.get $0 - local.get $5 - i32.const 2 + local.get $6 + i32.const 1 i32.shl i32.add - i32.load - call $~lib/util/number/itoa_stream - local.get $2 + i32.load16_u + call $~lib/util/number/itoa_stream + local.get $3 i32.add - local.set $2 - local.get $4 + local.set $3 + local.get $5 if local.get $1 - local.get $2 + local.get $3 i32.const 1 i32.shl i32.add - i32.const 3264 - local.get $4 + local.get $2 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.add - local.set $2 + local.set $3 end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end - local.get $6 + local.get $7 local.get $1 - local.get $2 - local.get $0 local.get $3 - i32.const 2 + local.get $0 + local.get $4 + i32.const 1 i32.shl i32.add - i32.load - call $~lib/util/number/itoa_stream - local.get $2 + i32.load16_u + call $~lib/util/number/itoa_stream + local.get $3 i32.add local.tee $0 i32.gt_s @@ -17515,170 +18623,85 @@ local.get $1 local.get $0 call $~lib/string/String#substring + local.get $2 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release return end + local.get $2 + call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Uint32Array#join (param $0 i32) (result i32) + (func $~lib/typedarray/Uint16Array#join (param $0 i32) (result i32) local.get $0 i32.load offset=4 local.get $0 i32.load offset=8 - i32.const 2 + i32.const 1 i32.shr_u - call $~lib/util/string/joinIntegerArray + i32.const 3264 + call $~lib/util/string/joinIntegerArray + i32.const 3264 + call $~lib/rt/pure/__release ) - (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) + (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i64.const 100000000000 - i64.ge_u - i32.const 10 + local.get $1 + i32.const 1 + i32.shl i32.add - local.get $0 - i64.const 10000000000 - i64.ge_u - i32.add - local.get $0 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $0 - i64.const 10000000000000 - i64.ge_u - i32.add - local.get $0 - i64.const 1000000000000 - i64.lt_u - select - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $0 - i64.const 1000000000000000000 - i64.ge_u - i32.add - local.get $0 - i64.const 100000000000000000 - i64.lt_u - select - local.get $0 - i64.const 1000000000000000 - i64.lt_u - select - ) - (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - loop $do-continue|0 - local.get $1 - i64.const 10 - i64.rem_u - i32.wrap_i64 - local.set $3 - local.get $1 - i64.const 10 - i64.div_u - local.set $1 - local.get $0 - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 48 - i32.add - i32.store16 - local.get $1 - i64.const 0 - i64.ne - br_if $do-continue|0 - end - ) - (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i64) (result i32) - (local $3 i32) - local.get $1 - i32.const 1 - i32.shl - local.get $0 - i32.add - local.set $1 + local.set $0 local.get $2 - i64.const 0 - i64.lt_s - local.tee $0 + i32.const 0 + i32.lt_s + local.tee $1 if - local.get $1 + local.get $0 i32.const 45 i32.store16 - i64.const 0 + i32.const 0 local.get $2 - i64.sub + i32.sub local.set $2 end local.get $2 - i64.const 10 - i64.lt_u + i32.const 10 + i32.lt_u if local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $1 i32.add local.get $2 - i64.const 48 - i64.or - i64.store16 - local.get $0 + i32.const 48 + i32.or + i32.store16 + local.get $1 i32.const 1 i32.add return end + local.get $0 local.get $2 - i64.const 4294967295 - i64.le_u - if - local.get $2 - i32.wrap_i64 - local.tee $3 - call $~lib/util/number/decimalCount32 - local.get $0 - i32.add - local.set $0 - local.get $1 - local.get $3 - local.get $0 - call $~lib/util/number/utoa_dec_simple - else - local.get $1 - local.get $2 - local.get $2 - call $~lib/util/number/decimalCount64High - local.get $0 - i32.add - local.tee $0 - call $~lib/util/number/utoa_dec_simple - end + local.get $2 + call $~lib/util/number/decimalCount32 + local.get $1 + i32.add + local.tee $0 + call $~lib/util/number/utoa_dec_simple local.get $0 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) + (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.get $2 + call $~lib/rt/pure/__retain + local.set $2 local.get $1 i32.const 1 i32.sub @@ -17686,86 +18709,29 @@ i32.const 0 i32.lt_s if + local.get $2 + call $~lib/rt/pure/__release i32.const 2928 return end local.get $4 i32.eqz if - block $__inlined_func$~lib/util/number/itoa64 (result i32) - i32.const 3136 - local.get $0 - i64.load - i32.wrap_i64 - i64.extend_i32_s - local.tee $3 - i64.eqz - br_if $__inlined_func$~lib/util/number/itoa64 - drop - local.get $3 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.tee $0 - if - i64.const 0 - local.get $3 - i64.sub - local.set $3 - end - local.get $3 - i64.const 4294967295 - i64.le_u - if - local.get $3 - i32.wrap_i64 - local.tee $2 - call $~lib/util/number/decimalCount32 - local.get $0 - i32.add - local.tee $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $1 - local.get $2 - local.get $4 - call $~lib/util/number/utoa_dec_simple - else - local.get $3 - call $~lib/util/number/decimalCount64High - local.get $0 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $1 - local.get $3 - local.get $2 - call $~lib/util/number/utoa_dec_simple - end - local.get $0 - if - local.get $1 - i32.const 45 - i32.store16 - end - local.get $1 - call $~lib/rt/pure/__retain - end + local.get $0 + i32.load + call $~lib/util/number/itoa32 + local.get $2 + call $~lib/rt/pure/__release return end local.get $4 - i32.const 3264 + local.get $2 call $~lib/string/String#get:length local.tee $5 - i32.const 21 + i32.const 11 i32.add i32.mul - i32.const 21 + i32.const 11 i32.add local.tee $7 i32.const 1 @@ -17780,33 +18746,33 @@ i32.lt_s if local.get $1 - local.get $2 + local.get $3 local.get $0 local.get $6 - i32.const 3 + i32.const 2 i32.shl i32.add - i64.load - call $~lib/util/number/itoa_stream - local.get $2 + i32.load + call $~lib/util/number/itoa_stream + local.get $3 i32.add - local.set $2 + local.set $3 local.get $5 if local.get $1 - local.get $2 + local.get $3 i32.const 1 i32.shl i32.add - i32.const 3264 + local.get $2 local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $2 + local.get $3 local.get $5 i32.add - local.set $2 + local.set $3 end local.get $6 i32.const 1 @@ -17817,15 +18783,15 @@ end local.get $7 local.get $1 - local.get $2 + local.get $3 local.get $0 local.get $4 - i32.const 3 + i32.const 2 i32.shl i32.add - i64.load - call $~lib/util/number/itoa_stream - local.get $2 + i32.load + call $~lib/util/number/itoa_stream + local.get $3 i32.add local.tee $0 i32.gt_s @@ -17833,135 +18799,94 @@ local.get $1 local.get $0 call $~lib/string/String#substring + local.get $2 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release return end + local.get $2 + call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Int64Array#join (param $0 i32) (result i32) + (func $~lib/typedarray/Int32Array#join (param $0 i32) (result i32) local.get $0 i32.load offset=4 local.get $0 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u - call $~lib/util/string/joinIntegerArray - ) - (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i64) (result i32) - (local $3 i32) + i32.const 3264 + call $~lib/util/string/joinIntegerArray + i32.const 3264 + call $~lib/rt/pure/__release + ) + (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 local.get $1 i32.const 1 i32.shl - local.get $0 i32.add local.set $0 local.get $2 - i64.const 10 - i64.lt_u + i32.const 10 + i32.lt_u if local.get $0 local.get $2 - i64.const 48 - i64.or - i64.store16 + i32.const 48 + i32.or + i32.store16 i32.const 1 return end + local.get $0 local.get $2 - i64.const 4294967295 - i64.le_u - if - local.get $2 - i32.wrap_i64 - local.tee $3 - call $~lib/util/number/decimalCount32 - local.set $1 - local.get $0 - local.get $3 - local.get $1 - call $~lib/util/number/utoa_dec_simple - else - local.get $0 - local.get $2 - local.get $2 - call $~lib/util/number/decimalCount64High - local.tee $1 - call $~lib/util/number/utoa_dec_simple - end - local.get $1 + local.get $2 + call $~lib/util/number/decimalCount32 + local.tee $0 + call $~lib/util/number/utoa_dec_simple + local.get $0 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $4 i32.const 0 i32.lt_s if + local.get $2 + call $~lib/rt/pure/__release i32.const 2928 return end - local.get $3 + local.get $4 i32.eqz if - block $__inlined_func$~lib/util/number/utoa64 (result i32) - i32.const 3136 - local.get $0 - i64.load - local.tee $4 - i64.eqz - br_if $__inlined_func$~lib/util/number/utoa64 - drop - local.get $4 - i64.const 4294967295 - i64.le_u - if - local.get $4 - i32.wrap_i64 - local.tee $1 - call $~lib/util/number/decimalCount32 - local.tee $2 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $0 - local.get $1 - local.get $2 - call $~lib/util/number/utoa_dec_simple - else - local.get $4 - call $~lib/util/number/decimalCount64High - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $0 - local.get $4 - local.get $1 - call $~lib/util/number/utoa_dec_simple - end - local.get $0 - call $~lib/rt/pure/__retain - end + local.get $0 + i32.load + call $~lib/util/number/utoa32 + local.get $2 + call $~lib/rt/pure/__release return end - local.get $3 - i32.const 3264 + local.get $4 + local.get $2 call $~lib/string/String#get:length local.tee $5 - i32.const 20 + i32.const 10 i32.add i32.mul - i32.const 20 + i32.const 10 i32.add local.tee $7 i32.const 1 @@ -17972,37 +18897,37 @@ local.set $1 loop $for-loop|0 local.get $6 - local.get $3 + local.get $4 i32.lt_s if local.get $1 - local.get $2 + local.get $3 local.get $0 local.get $6 - i32.const 3 + i32.const 2 i32.shl i32.add - i64.load - call $~lib/util/number/itoa_stream - local.get $2 + i32.load + call $~lib/util/number/itoa_stream + local.get $3 i32.add - local.set $2 + local.set $3 local.get $5 if local.get $1 - local.get $2 + local.get $3 i32.const 1 i32.shl i32.add - i32.const 3264 + local.get $2 local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $2 + local.get $3 local.get $5 i32.add - local.set $2 + local.set $3 end local.get $6 i32.const 1 @@ -18013,15 +18938,15 @@ end local.get $7 local.get $1 - local.get $2 - local.get $0 local.get $3 - i32.const 3 + local.get $0 + local.get $4 + i32.const 2 i32.shl i32.add - i64.load - call $~lib/util/number/itoa_stream - local.get $2 + i32.load + call $~lib/util/number/itoa_stream + local.get $3 i32.add local.tee $0 i32.gt_s @@ -18029,2224 +18954,1923 @@ local.get $1 local.get $0 call $~lib/string/String#substring + local.get $2 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release return end + local.get $2 + call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Uint64Array#join (param $0 i32) (result i32) + (func $~lib/typedarray/Uint32Array#join (param $0 i32) (result i32) local.get $0 i32.load offset=4 local.get $0 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u - call $~lib/util/string/joinIntegerArray + i32.const 3264 + call $~lib/util/string/joinIntegerArray + i32.const 3264 + call $~lib/rt/pure/__release ) - (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 i32) - (local $11 i64) - (local $12 i64) - (local $13 i64) - local.get $3 + (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 1000000000000 + i64.lt_u + select + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + local.get $0 + i64.const 100000000000000000 + i64.lt_u + select + local.get $0 + i64.const 1000000000000000 + i64.lt_u + select + ) + (func $~lib/util/number/utoa_dec_simple (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + loop $do-continue|0 + local.get $1 + i64.const 10 + i64.rem_u + i32.wrap_i64 + local.set $3 + local.get $1 + i64.const 10 + i64.div_u + local.set $1 + local.get $0 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 48 + i32.add + i32.store16 + local.get $1 + i64.const 0 + i64.ne + br_if $do-continue|0 + end + ) + (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (local $3 i32) local.get $1 - i64.sub - local.set $9 - local.get $3 - i64.const 1 - i32.const 0 - local.get $4 - i32.sub - local.tee $10 - i64.extend_i32_s - i64.shl - local.tee $11 - i64.const 1 - i64.sub - local.tee $12 - i64.and - local.set $8 - local.get $3 - local.get $10 - i64.extend_i32_s - i64.shr_u - i32.wrap_i64 - local.tee $7 - call $~lib/util/number/decimalCount32 - local.set $4 - loop $while-continue|0 - local.get $4 - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - local.get $4 - local.tee $2 - i32.const 10 - i32.ne - if - local.get $2 - i32.const 1 - i32.sub - br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case10|1 - end - local.get $7 - i32.const 1000000000 - i32.div_u - local.set $2 - local.get $7 - i32.const 1000000000 - i32.rem_u - local.set $7 - br $break|1 - end - local.get $7 - i32.const 100000000 - i32.div_u - local.set $2 - local.get $7 - i32.const 100000000 - i32.rem_u - local.set $7 - br $break|1 - end - local.get $7 - i32.const 10000000 - i32.div_u - local.set $2 - local.get $7 - i32.const 10000000 - i32.rem_u - local.set $7 - br $break|1 - end - local.get $7 - i32.const 1000000 - i32.div_u - local.set $2 - local.get $7 - i32.const 1000000 - i32.rem_u - local.set $7 - br $break|1 - end - local.get $7 - i32.const 100000 - i32.div_u - local.set $2 - local.get $7 - i32.const 100000 - i32.rem_u - local.set $7 - br $break|1 - end - local.get $7 - i32.const 10000 - i32.div_u - local.set $2 - local.get $7 - i32.const 10000 - i32.rem_u - local.set $7 - br $break|1 - end - local.get $7 - i32.const 1000 - i32.div_u - local.set $2 - local.get $7 - i32.const 1000 - i32.rem_u - local.set $7 - br $break|1 - end - local.get $7 - i32.const 100 - i32.div_u - local.set $2 - local.get $7 - i32.const 100 - i32.rem_u - local.set $7 - br $break|1 - end - local.get $7 - i32.const 10 - i32.div_u - local.set $2 - local.get $7 - i32.const 10 - i32.rem_u - local.set $7 - br $break|1 - end - local.get $7 - local.set $2 - i32.const 0 - local.set $7 - br $break|1 - end - i32.const 0 - local.set $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.set $1 + local.get $2 + i64.const 0 + i64.lt_s + local.tee $0 + if + local.get $1 + i32.const 45 + i32.store16 + i64.const 0 + local.get $2 + i64.sub + local.set $2 + end + local.get $2 + i64.const 10 + i64.lt_u + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $2 + i64.const 48 + i64.or + i64.store16 + local.get $0 + i32.const 1 + i32.add + return + end + local.get $2 + i64.const 4294967295 + i64.le_u + if + local.get $2 + i32.wrap_i64 + local.tee $3 + call $~lib/util/number/decimalCount32 + local.get $0 + i32.add + local.set $0 + local.get $1 + local.get $3 + local.get $0 + call $~lib/util/number/utoa_dec_simple + else + local.get $1 + local.get $2 + local.get $2 + call $~lib/util/number/decimalCount64High + local.get $0 + i32.add + local.tee $0 + call $~lib/util/number/utoa_dec_simple + end + local.get $0 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.tee $5 + i32.const 0 + i32.lt_s + if + local.get $2 + call $~lib/rt/pure/__release + i32.const 2928 + return + end + local.get $5 + i32.eqz + if + block $__inlined_func$~lib/util/number/itoa64 (result i32) + i32.const 3136 + local.get $0 + i64.load + i32.wrap_i64 + i64.extend_i32_s + local.tee $4 + i64.eqz + br_if $__inlined_func$~lib/util/number/itoa64 + drop + local.get $4 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.tee $0 + if + i64.const 0 + local.get $4 + i64.sub + local.set $4 end - local.get $2 - local.get $6 - i32.or + local.get $4 + i64.const 4294967295 + i64.le_u if + local.get $4 + i32.wrap_i64 + local.tee $3 + call $~lib/util/number/decimalCount32 local.get $0 - local.get $6 + i32.add + local.tee $5 i32.const 1 i32.shl - i32.add - local.get $2 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - local.get $6 i32.const 1 - i32.add - local.set $6 - end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - local.get $8 - local.get $7 - i64.extend_i32_u - local.get $10 - i64.extend_i32_s - i64.shl - i64.add - local.tee $1 - local.get $5 - i64.le_u - if - local.get $4 - global.get $~lib/util/number/_K - i32.add - global.set $~lib/util/number/_K + call $~lib/rt/tlsf/__alloc + local.tee $1 + local.get $3 + local.get $5 + call $~lib/util/number/utoa_dec_simple + else local.get $4 - i32.const 2 - i32.shl - i32.const 4344 - i32.add - i64.load32_u - local.get $10 - i64.extend_i32_s - i64.shl - local.set $3 + call $~lib/util/number/decimalCount64High local.get $0 - local.get $6 - i32.const 1 - i32.sub + i32.add + local.tee $3 i32.const 1 i32.shl - i32.add - local.tee $2 - i32.load16_u - local.set $4 - loop $while-continue|3 - i32.const 1 - local.get $9 - local.get $1 - i64.sub - local.get $1 - local.get $3 - i64.add - local.get $9 - i64.sub - i64.gt_u - local.get $1 - local.get $3 - i64.add - local.get $9 - i64.lt_u - select - i32.const 0 - local.get $5 - local.get $1 - i64.sub - local.get $3 - i64.ge_u - i32.const 0 - local.get $1 - local.get $9 - i64.lt_u - select - select - if - local.get $4 - i32.const 1 - i32.sub - local.set $4 - local.get $1 - local.get $3 - i64.add - local.set $1 - br $while-continue|3 - end - end - local.get $2 + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.tee $1 local.get $4 + local.get $3 + call $~lib/util/number/utoa_dec_simple + end + local.get $0 + if + local.get $1 + i32.const 45 i32.store16 - local.get $6 - return end - br $while-continue|0 + local.get $1 + call $~lib/rt/pure/__retain end + local.get $2 + call $~lib/rt/pure/__release + return end - local.get $10 - i64.extend_i32_s - local.set $13 - loop $while-continue|4 (result i32) + local.get $5 + local.get $2 + call $~lib/string/String#get:length + local.tee $6 + i32.const 21 + i32.add + i32.mul + i32.const 21 + i32.add + local.tee $8 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $1 + loop $for-loop|0 + local.get $7 local.get $5 - i64.const 10 - i64.mul - local.set $5 - local.get $8 - i64.const 10 - i64.mul - local.tee $3 - local.get $13 - i64.shr_u - local.tee $1 - local.get $6 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne + i32.lt_s if + local.get $1 + local.get $3 local.get $0 - local.get $6 - i32.const 1 + local.get $7 + i32.const 3 i32.shl i32.add - local.get $1 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.const 48 + i64.load + call $~lib/util/number/itoa_stream + local.get $3 i32.add - i32.store16 + local.set $3 local.get $6 + if + local.get $1 + local.get $3 + 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 $3 + local.get $6 + i32.add + local.set $3 + end + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 + br $for-loop|0 end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - local.get $3 - local.get $12 - i64.and - local.tee $8 - local.get $5 - i64.ge_u - br_if $while-continue|4 - local.get $4 - global.get $~lib/util/number/_K - i32.add - global.set $~lib/util/number/_K - local.get $8 - local.set $1 - local.get $9 - i32.const 0 - local.get $4 - i32.sub - i32.const 2 - i32.shl - i32.const 4344 - i32.add - i64.load32_u - i64.mul - local.set $3 + end + local.get $8 + local.get $1 + local.get $3 + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_stream + local.get $3 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 local.get $0 - local.get $6 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $2 - i32.load16_u - local.set $4 - loop $while-continue|6 - i32.const 1 - local.get $3 - local.get $1 - i64.sub - local.get $1 - local.get $11 - i64.add - local.get $3 - i64.sub - i64.gt_u - local.get $1 - local.get $11 - i64.add - local.get $3 - i64.lt_u - select - i32.const 0 - local.get $5 - local.get $1 - i64.sub - local.get $11 - i64.ge_u - i32.const 0 - local.get $1 - local.get $3 - i64.lt_u - select - select - if - local.get $4 - i32.const 1 - i32.sub - local.set $4 - local.get $1 - local.get $11 - i64.add - local.set $1 - br $while-continue|6 - end - end + call $~lib/string/String#substring local.get $2 - local.get $4 - i32.store16 - local.get $6 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + return end + local.get $2 + call $~lib/rt/pure/__release + local.get $1 ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array#join (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 3264 + call $~lib/util/string/joinIntegerArray + i32.const 3264 + call $~lib/rt/pure/__release + ) + (func $~lib/util/number/itoa_stream (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.set $0 local.get $2 - i32.eqz + i64.const 10 + i64.lt_u if local.get $0 - local.get $1 + local.get $2 + i64.const 48 + i64.or + i64.store16 i32.const 1 - i32.shl - i32.add - i32.const 3145774 - i32.store - local.get $1 - i32.const 2 - i32.add return end - local.get $1 - local.get $1 local.get $2 - i32.add - local.tee $3 - i32.le_s - if (result i32) + i64.const 4294967295 + i64.le_u + if + local.get $2 + i32.wrap_i64 + local.tee $3 + call $~lib/util/number/decimalCount32 + local.set $1 + local.get $0 local.get $3 - i32.const 21 - i32.le_s + local.get $1 + call $~lib/util/number/utoa_dec_simple else - i32.const 0 + local.get $0 + local.get $2 + local.get $2 + call $~lib/util/number/decimalCount64High + local.tee $1 + call $~lib/util/number/utoa_dec_simple end - if (result i32) - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s + local.get $1 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.tee $4 + i32.const 0 + i32.lt_s + if + local.get $2 + call $~lib/rt/pure/__release + i32.const 2928 + return + end + local.get $4 + i32.eqz + if + block $__inlined_func$~lib/util/number/utoa64 (result i32) + i32.const 3136 + local.get $0 + i64.load + local.tee $5 + i64.eqz + br_if $__inlined_func$~lib/util/number/utoa64 + drop + local.get $5 + i64.const 4294967295 + i64.le_u if - local.get $0 - local.get $1 + local.get $5 + i32.wrap_i64 + local.tee $1 + call $~lib/util/number/decimalCount32 + local.tee $3 i32.const 1 i32.shl - i32.add - i32.const 48 - i32.store16 + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.tee $0 local.get $1 + local.get $3 + call $~lib/util/number/utoa_dec_simple + else + local.get $5 + call $~lib/util/number/decimalCount64High + local.tee $1 i32.const 1 - i32.add - local.set $1 - br $for-loop|0 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.tee $0 + local.get $5 + local.get $1 + call $~lib/util/number/utoa_dec_simple end - end - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.const 3145774 - i32.store - local.get $3 - i32.const 2 - i32.add - else - local.get $3 - i32.const 21 - i32.le_s - i32.const 0 - local.get $3 - i32.const 0 - i32.gt_s - select - if (result i32) local.get $0 + call $~lib/rt/pure/__retain + end + local.get $2 + call $~lib/rt/pure/__release + return + end + local.get $4 + local.get $2 + call $~lib/string/String#get:length + local.tee $6 + i32.const 20 + i32.add + i32.mul + i32.const 20 + i32.add + local.tee $8 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $1 + loop $for-loop|0 + local.get $7 + local.get $4 + i32.lt_s + if + local.get $1 local.get $3 - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.const 2 - i32.add local.get $0 - i32.const 0 - local.get $2 - i32.sub - i32.const 1 + local.get $7 + i32.const 3 i32.shl - call $~lib/memory/memory.copy - local.get $0 - i32.const 46 - i32.store16 - local.get $1 - i32.const 1 i32.add - else - local.get $3 - i32.const 0 - i32.le_s - i32.const 0 - i32.const -6 + i64.load + call $~lib/util/number/itoa_stream local.get $3 - i32.lt_s - select - if (result i32) - local.get $0 - i32.const 2 + i32.add + local.set $3 + local.get $6 + if + local.get $1 local.get $3 - i32.sub - local.tee $3 i32.const 1 i32.shl i32.add - local.get $0 - local.get $1 + local.get $2 + local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 - i32.const 3014704 - i32.store - i32.const 2 - local.set $2 - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - local.get $1 local.get $3 + local.get $6 i32.add - else - local.get $1 - i32.const 1 - i32.eq - if (result i32) - local.get $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - local.tee $1 - i32.const 4 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $2 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa_dec_simple - local.get $1 - i32.const 45 - i32.const 43 - local.get $2 - select - i32.store16 offset=4 - local.get $0 - i32.const 2 - i32.add - else - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.const 2 - i32.add - local.get $1 - i32.const 1 - i32.shl - local.tee $2 - i32.const 2 - i32.sub - call $~lib/memory/memory.copy - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - local.get $2 - i32.add - local.tee $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - local.tee $2 - i32.const 4 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $3 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa_dec_simple - local.get $2 - i32.const 45 - i32.const 43 - local.get $3 - select - i32.store16 offset=4 - local.get $0 - local.get $1 - i32.add - i32.const 2 - i32.add - end + local.set $3 end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 end end - ) - (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) - (local $2 i64) - (local $3 i64) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i64) - (local $8 i32) - (local $9 i32) - (local $10 i64) + local.get $8 local.get $1 - f64.const 0 - f64.lt - local.tee $8 - if (result f64) - local.get $0 - i32.const 45 - i32.store16 + local.get $3 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_stream + local.get $3 + i32.add + local.tee $0 + i32.gt_s + if local.get $1 - f64.neg - else + local.get $0 + call $~lib/string/String#substring + local.get $2 + call $~lib/rt/pure/__release local.get $1 + call $~lib/rt/pure/__release + return end - i64.reinterpret_f64 - local.tee $3 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $6 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + ) + (func $~lib/typedarray/Uint64Array#join (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 3264 + call $~lib/util/string/joinIntegerArray + i32.const 3264 + call $~lib/rt/pure/__release + ) + (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 i32) + (local $11 i64) + (local $12 i64) + (local $13 i64) local.get $3 - i64.const 4503599627370495 - i64.and - i64.add - local.tee $2 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.tee $3 + local.get $1 + i64.sub + local.set $9 local.get $3 - i64.clz - i32.wrap_i64 - local.tee $4 - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_plus - local.get $6 - i32.const 1 - local.get $6 - select - i32.const 1075 - i32.sub - local.tee $6 - i32.const 1 - i32.sub + i64.const 1 + i32.const 0 local.get $4 i32.sub - local.set $4 - local.get $2 - local.get $2 - i64.const 4503599627370496 - i64.eq - i32.const 1 - i32.add - local.tee $9 + local.tee $10 i64.extend_i32_s i64.shl + local.tee $11 i64.const 1 i64.sub - local.get $6 - local.get $9 - i32.sub - local.get $4 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $4 - global.set $~lib/util/number/_exp - i32.const 348 - i32.const -61 - global.get $~lib/util/number/_exp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.tee $1 - i32.trunc_f64_s - local.tee $4 - local.get $4 - f64.convert_i32_s - local.get $1 - f64.ne - i32.add - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.tee $4 - i32.const 3 - i32.shl - local.tee $9 - i32.sub - global.set $~lib/util/number/_K - local.get $9 - i32.const 3472 - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - local.get $4 - i32.const 1 - i32.shl - i32.const 4168 - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow - global.get $~lib/util/number/_frc_pow - local.tee $3 - i64.const 4294967295 - i64.and - local.set $5 - local.get $0 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $2 - local.get $2 - i64.clz - i32.wrap_i64 - local.tee $0 - i64.extend_i32_s - i64.shl - local.tee $2 - i64.const 32 - i64.shr_u - local.tee $7 - local.get $3 - i64.const 32 - i64.shr_u - local.tee $10 - i64.mul - local.get $5 - local.get $7 - i64.mul - local.get $2 - i64.const 4294967295 - i64.and - local.tee $2 - local.get $5 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $5 - i64.const 32 - i64.shr_u - i64.add - local.get $2 - local.get $10 - i64.mul - local.get $5 - i64.const 4294967295 + local.tee $12 i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - global.get $~lib/util/number/_exp_pow - local.tee $4 - local.get $6 - local.get $0 - i32.sub - i32.add - i32.const -64 - i32.sub - global.get $~lib/util/number/_frc_plus - local.tee $2 - i64.const 32 - i64.shr_u - local.tee $5 - local.get $3 - i64.const 32 - i64.shr_u - local.tee $7 - i64.mul + local.set $8 local.get $3 - i64.const 4294967295 - i64.and - local.tee $10 - local.get $5 - i64.mul - local.get $2 - i64.const 4294967295 - i64.and - local.tee $2 local.get $10 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $5 - i64.const 32 - i64.shr_u - i64.add - local.get $2 - local.get $7 - i64.mul - local.get $5 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.tee $2 - local.get $4 - global.get $~lib/util/number/_exp - i32.add - i32.const -64 - i32.sub - local.get $2 - global.get $~lib/util/number/_frc_minus - local.tee $2 - i64.const 32 - i64.shr_u - local.tee $5 - local.get $3 - i64.const 32 + i64.extend_i32_s i64.shr_u + i32.wrap_i64 local.tee $7 - i64.mul - local.get $3 - i64.const 4294967295 - i64.and - local.tee $3 - local.get $5 - i64.mul - local.get $2 - i64.const 4294967295 - i64.and - local.tee $2 - local.get $3 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $3 - i64.const 32 - i64.shr_u - i64.add - local.get $2 - local.get $7 - i64.mul - local.get $3 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub - local.get $8 - call $~lib/util/number/genDigits - local.get $8 - i32.sub - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - local.get $8 - i32.add - ) - (func $~lib/util/number/dtoa (param $0 f64) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - f64.const 0 - f64.eq - if - i32.const 3344 - return - end - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.ne - if - local.get $0 - local.get $0 - f64.ne + call $~lib/util/number/decimalCount32 + local.set $4 + loop $while-continue|0 + local.get $4 + i32.const 0 + i32.gt_s if - i32.const 3376 - return - end - i32.const 3408 - i32.const 3456 - local.get $0 - f64.const 0 - f64.lt - select - call $~lib/rt/pure/__retain - return - end - i32.const 56 - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $1 - local.get $0 - call $~lib/util/number/dtoa_core - local.tee $2 - i32.const 28 - i32.eq - if - local.get $1 - call $~lib/rt/pure/__retain - return - end - local.get $1 - local.get $2 - call $~lib/string/String#substring - call $~lib/rt/tlsf/maybeInitialize - local.get $1 - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/util/number/dtoa_stream (param $0 i32) (param $1 i32) (param $2 f64) (result i32) - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $0 - local.get $2 - f64.const 0 - f64.eq - if - local.get $0 - i32.const 48 - i32.store16 - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - i32.const 48 - i32.store16 offset=4 - i32.const 3 - return - end - local.get $2 - local.get $2 - f64.sub - f64.const 0 - f64.ne - if - local.get $2 - local.get $2 - f64.ne - if - local.get $0 - i32.const 78 - i32.store16 - local.get $0 - i32.const 97 - i32.store16 offset=2 - local.get $0 - i32.const 78 - i32.store16 offset=4 - i32.const 3 - return - else + 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 + local.get $4 + local.tee $2 + i32.const 10 + i32.ne + if + local.get $2 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case10|1 + end + local.get $7 + i32.const 1000000000 + i32.div_u + local.set $2 + local.get $7 + i32.const 1000000000 + i32.rem_u + local.set $7 + br $break|1 + end + local.get $7 + i32.const 100000000 + i32.div_u + local.set $2 + local.get $7 + i32.const 100000000 + i32.rem_u + local.set $7 + br $break|1 + end + local.get $7 + i32.const 10000000 + i32.div_u + local.set $2 + local.get $7 + i32.const 10000000 + i32.rem_u + local.set $7 + br $break|1 + end + local.get $7 + i32.const 1000000 + i32.div_u + local.set $2 + local.get $7 + i32.const 1000000 + i32.rem_u + local.set $7 + br $break|1 + end + local.get $7 + i32.const 100000 + i32.div_u + local.set $2 + local.get $7 + i32.const 100000 + i32.rem_u + local.set $7 + br $break|1 + end + local.get $7 + i32.const 10000 + i32.div_u + local.set $2 + local.get $7 + i32.const 10000 + i32.rem_u + local.set $7 + br $break|1 + end + local.get $7 + i32.const 1000 + i32.div_u + local.set $2 + local.get $7 + i32.const 1000 + i32.rem_u + local.set $7 + br $break|1 + end + local.get $7 + i32.const 100 + i32.div_u + local.set $2 + local.get $7 + i32.const 100 + i32.rem_u + local.set $7 + br $break|1 + end + local.get $7 + i32.const 10 + i32.div_u + local.set $2 + local.get $7 + i32.const 10 + i32.rem_u + local.set $7 + br $break|1 + end + local.get $7 + local.set $2 + i32.const 0 + local.set $7 + br $break|1 + end + i32.const 0 + local.set $2 + end local.get $2 - f64.const 0 - f64.lt - local.tee $1 + local.get $6 + i32.or if local.get $0 - i32.const 45 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.const 65535 + i32.and + i32.const 48 + i32.add i32.store16 - local.get $0 - i32.const 2 + local.get $6 + i32.const 1 i32.add - local.set $0 + local.set $6 end - local.get $0 - i64.const 29555310648492105 - i64.store - local.get $0 - i64.const 34058970405077102 - i64.store offset=8 - local.get $1 - i32.const 8 - i32.add - return - end - unreachable - end - local.get $0 - local.get $2 - call $~lib/util/number/dtoa_core - ) - (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - i32.const 1 - i32.sub - local.tee $3 - i32.const 0 - i32.lt_s - if - i32.const 2928 - return - end - local.get $3 - i32.eqz - if - local.get $0 - f32.load - f64.promote_f32 - call $~lib/util/number/dtoa - return - end - local.get $3 - i32.const 3264 - call $~lib/string/String#get:length - local.tee $4 - i32.const 28 - i32.add - i32.mul - i32.const 28 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $1 - loop $for-loop|0 - local.get $5 - local.get $3 - i32.lt_s - if - local.get $1 - local.get $2 - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - f64.promote_f32 - call $~lib/util/number/dtoa_stream - local.get $2 - i32.add - local.set $2 local.get $4 + i32.const 1 + i32.sub + local.set $4 + local.get $8 + local.get $7 + i64.extend_i32_u + local.get $10 + i64.extend_i32_s + i64.shl + i64.add + local.tee $1 + local.get $5 + i64.le_u if - local.get $1 - local.get $2 - i32.const 1 - i32.shl + local.get $4 + global.get $~lib/util/number/_K i32.add - i32.const 3264 + global.set $~lib/util/number/_K local.get $4 + i32.const 2 + i32.shl + i32.const 4344 + i32.add + i64.load32_u + local.get $10 + i64.extend_i32_s + i64.shl + local.set $3 + local.get $0 + local.get $6 + i32.const 1 + i32.sub i32.const 1 i32.shl - call $~lib/memory/memory.copy + i32.add + local.tee $2 + i32.load16_u + local.set $4 + loop $while-continue|3 + i32.const 1 + local.get $9 + local.get $1 + i64.sub + local.get $1 + local.get $3 + i64.add + local.get $9 + i64.sub + i64.gt_u + local.get $1 + local.get $3 + i64.add + local.get $9 + i64.lt_u + select + i32.const 0 + local.get $5 + local.get $1 + i64.sub + local.get $3 + i64.ge_u + i32.const 0 + local.get $1 + local.get $9 + i64.lt_u + select + select + if + local.get $4 + i32.const 1 + i32.sub + local.set $4 + local.get $1 + local.get $3 + i64.add + local.set $1 + br $while-continue|3 + end + end local.get $2 local.get $4 - i32.add - local.set $2 + i32.store16 + local.get $6 + return end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + br $while-continue|0 end end - local.get $6 - local.get $1 - local.get $2 - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - f32.load - f64.promote_f32 - call $~lib/util/number/dtoa_stream - local.get $2 - i32.add - local.tee $0 - i32.gt_s - if - local.get $1 - local.get $0 - call $~lib/string/String#substring - local.get $1 - call $~lib/rt/pure/__release - return - end - local.get $1 - ) - (func $~lib/typedarray/Float32Array#join (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - call $~lib/util/string/joinFloatArray - ) - (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - i32.const 1 - i32.sub - local.tee $3 - i32.const 0 - i32.lt_s - if - i32.const 2928 - return - end - local.get $3 - i32.eqz - if - local.get $0 - f64.load - call $~lib/util/number/dtoa - return - end - local.get $3 - i32.const 3264 - call $~lib/string/String#get:length - local.tee $4 - i32.const 28 - i32.add - i32.mul - i32.const 28 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $1 - loop $for-loop|0 + local.get $10 + i64.extend_i32_s + local.set $13 + loop $while-continue|4 (result i32) local.get $5 - local.get $3 - i32.lt_s + i64.const 10 + i64.mul + local.set $5 + local.get $8 + i64.const 10 + i64.mul + local.tee $3 + local.get $13 + i64.shr_u + local.tee $1 + local.get $6 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne if - local.get $1 - local.get $2 local.get $0 - local.get $5 - i32.const 3 + local.get $6 + i32.const 1 i32.shl i32.add - f64.load - call $~lib/util/number/dtoa_stream - local.get $2 + local.get $1 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 i32.add - local.set $2 - local.get $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 3264 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $5 + i32.store16 + local.get $6 i32.const 1 i32.add - local.set $5 - br $for-loop|0 + local.set $6 end - end - local.get $6 - local.get $1 - local.get $2 - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - f64.load - call $~lib/util/number/dtoa_stream - local.get $2 - i32.add - local.tee $0 - i32.gt_s - if - local.get $1 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + local.get $3 + local.get $12 + i64.and + local.tee $8 + local.get $5 + i64.ge_u + br_if $while-continue|4 + local.get $4 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $8 + local.set $1 + local.get $9 + i32.const 0 + local.get $4 + i32.sub + i32.const 2 + i32.shl + i32.const 4344 + i32.add + i64.load32_u + i64.mul + local.set $3 local.get $0 - call $~lib/string/String#substring - local.get $1 - call $~lib/rt/pure/__release - return - end - local.get $1 - ) - (func $~lib/typedarray/Float64Array#join (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - call $~lib/util/string/joinFloatArray - ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.const 1073741808 - i32.gt_u - if - i32.const 1040 - i32.const 1088 - i32.const 49 - i32.const 43 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $1 - i32.const 0 - local.get $0 - call $~lib/memory/memory.fill - local.get $1 - call $~lib/rt/pure/__retain - local.tee $0 - ) - (func $~lib/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 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 + local.get $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $2 + i32.load16_u + local.set $4 + loop $while-continue|6 + i32.const 1 + local.get $3 + local.get $1 + i64.sub + local.get $1 + local.get $11 + i64.add + local.get $3 + i64.sub + i64.gt_u + local.get $1 + local.get $11 + i64.add + local.get $3 + i64.lt_u + select i32.const 0 - local.set $1 - end - i32.const -1 - local.set $3 - end - local.get $1 - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - local.tee $2 - i32.gt_u - if - i32.const 1376 - i32.const 1440 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $3 - i32.const -1 - i32.eq - if (result i32) - local.get $2 + local.get $5 local.get $1 - i32.sub - else - i32.const 1040 - i32.const 1440 - i32.const 1750 - i32.const 7 - call $~lib/builtins/abort - unreachable + i64.sub + local.get $11 + i64.ge_u + i32.const 0 + local.get $1 + local.get $3 + i64.lt_u + select + select + if + local.get $4 + i32.const 1 + i32.sub + local.set $4 + local.get $1 + local.get $11 + i64.add + local.set $1 + br $while-continue|6 + end end - local.set $3 - else - local.get $1 - local.get $3 - i32.add local.get $2 - i32.gt_s - if - i32.const 1040 - i32.const 1440 - i32.const 1755 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + local.get $4 + i32.store16 + local.get $6 end - i32.const 12 - i32.const 4 - call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $0 - call $~lib/rt/pure/__retain - i32.store - local.get $2 - local.get $3 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $1 - i32.add - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/__retain ) - (func $~lib/arraybuffer/ArrayBuffer#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - local.set $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) + local.get $2 + i32.eqz + if + local.get $0 local.get $1 - local.get $3 + i32.const 1 + i32.shl 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 + i32.const 3145774 + i32.store local.get $1 - local.get $3 - i32.lt_s - select + i32.const 2 + i32.add + return end - local.set $1 + local.get $1 + local.get $1 local.get $2 - i32.const 0 - i32.lt_s + i32.add + local.tee $3 + i32.le_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 + i32.const 21 + i32.le_s 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 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $0 - local.get $1 - i32.add - local.get $2 - call $~lib/memory/memory.copy - local.get $3 - call $~lib/rt/pure/__retain - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - i32.const 4540 - i32.load - local.tee $4 - call $~lib/typedarray/Int8Array#constructor - local.tee $5 - local.set $2 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 4528 - local.get $0 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $2 - i32.load - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $0 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - local.tee $1 - local.set $6 - i32.const 0 - local.get $1 - i32.gt_u - if - i32.const 1376 - i32.const 1440 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.const 0 end - i32.const 12 - i32.const 3 - call $~lib/rt/tlsf/__alloc - local.tee $1 - local.get $0 - call $~lib/rt/pure/__retain - i32.store - local.get $1 - local.get $6 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store offset=4 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $3 - call $~lib/typedarray/Int8Array#__get + if (result i32) + loop $for-loop|0 local.get $1 local.get $3 - call $~lib/typedarray/Int8Array#__get - i32.ne + i32.lt_s if - i32.const 0 - i32.const 1312 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 end - end - local.get $5 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - i32.const 4540 - i32.load - local.tee $3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $5 - local.set $1 - loop $for-loop|0 local.get $0 local.get $3 - i32.lt_s - if - local.get $1 - local.get $0 - i32.const 4528 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $3 + i32.const 2 + i32.add + else + local.get $3 + i32.const 21 + i32.le_s + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + if (result i32) local.get $0 + local.get $3 i32.const 1 + i32.shl i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $1 - i32.load - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $1 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $0 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.set $4 - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $1 - local.get $2 - call $~lib/typedarray/Uint8Array#__get - local.get $4 - local.get $2 - call $~lib/typedarray/Uint8Array#__get - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.tee $0 + i32.const 2 + i32.add + local.get $0 + i32.const 0 local.get $2 + i32.sub + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + i32.const 46 + i32.store16 + local.get $1 i32.const 1 i32.add - local.set $2 - br $for-loop|1 - end - end - local.get $5 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release + else + local.get $3 + i32.const 0 + i32.le_s + i32.const 0 + i32.const -6 + local.get $3 + i32.lt_s + select + if (result i32) + local.get $0 + i32.const 2 + local.get $3 + i32.sub + local.tee $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + i32.const 3014704 + i32.store + i32.const 2 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + local.get $3 + i32.add + else + local.get $1 + i32.const 1 + i32.eq + if (result i32) + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + local.tee $1 + i32.const 4 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa_dec_simple + local.get $1 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 offset=4 + local.get $0 + i32.const 2 + i32.add + else + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $1 + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + i32.sub + call $~lib/memory/memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $2 + i32.add + local.tee $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + local.tee $2 + i32.const 4 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $3 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa_dec_simple + local.get $2 + i32.const 45 + i32.const 43 + local.get $3 + select + i32.store16 offset=4 + local.get $0 + local.get $1 + i32.add + i32.const 2 + i32.add + end + end + end + end ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) (local $4 i32) - (local $5 i32) + (local $5 i64) (local $6 i32) - i32.const 4540 - i32.load - local.tee $4 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $5 - local.set $2 - loop $for-loop|0 + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i64) + local.get $1 + f64.const 0 + f64.lt + local.tee $8 + if (result f64) local.get $0 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 4528 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end + i32.const 45 + i32.store16 + local.get $1 + f64.neg + else + local.get $1 end - local.get $2 - i32.load - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $0 + i64.reinterpret_f64 + local.tee $3 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $6 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $3 + i64.const 4503599627370495 + i64.and + i64.add + local.tee $2 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.tee $3 + local.get $3 + i64.clz + i32.wrap_i64 + local.tee $4 + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_plus + local.get $6 i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 16 + local.get $6 + select + i32.const 1075 i32.sub - i32.load offset=12 - local.tee $1 - local.set $6 - i32.const 0 - local.get $1 - i32.gt_u - if - i32.const 1376 - i32.const 1440 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - i32.const 12 - i32.const 5 - call $~lib/rt/tlsf/__alloc - local.tee $1 - local.get $0 - call $~lib/rt/pure/__retain - i32.store - local.get $1 + local.tee $6 + i32.const 1 + i32.sub + local.get $4 + i32.sub + local.set $4 + local.get $2 + local.get $2 + i64.const 4503599627370496 + i64.eq + i32.const 1 + i32.add + local.tee $9 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub local.get $6 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store offset=4 - local.get $1 - call $~lib/rt/pure/__retain - local.set $1 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#__get - local.get $1 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end - end - local.get $5 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - i32.const 4540 - i32.load + local.get $9 + i32.sub + local.get $4 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $4 + global.set $~lib/util/number/_exp + i32.const 348 + i32.const -61 + global.get $~lib/util/number/_exp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.tee $1 + i32.trunc_f64_s local.tee $4 - call $~lib/typedarray/Int16Array#constructor - local.tee $6 - local.set $1 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $0 - i32.const 4528 - local.get $0 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $1 - i32.load - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $4 + f64.convert_i32_s local.get $1 - i32.load offset=8 + f64.ne i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $0 + i32.const 3 + i32.shr_s i32.const 1 - global.set $~argumentsLength - i32.const 0 - local.get $0 - i32.const 16 + i32.add + local.tee $4 + i32.const 3 + i32.shl + local.tee $9 i32.sub - i32.load offset=12 - local.tee $5 - i32.gt_u - if - i32.const 1376 - i32.const 1440 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $5 + global.set $~lib/util/number/_K + local.get $9 + i32.const 3472 + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + local.get $4 i32.const 1 - i32.and - if - i32.const 1040 - i32.const 1440 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - i32.const 12 - i32.const 6 - call $~lib/rt/tlsf/__alloc - local.tee $2 + i32.shl + i32.const 4168 + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + global.get $~lib/util/number/_frc_pow + local.tee $3 + i64.const 4294967295 + i64.and + local.set $5 + local.get $0 + local.get $8 + i32.const 1 + i32.shl + i32.add local.get $0 - call $~lib/rt/pure/__retain - i32.store local.get $2 + local.get $2 + i64.clz + i32.wrap_i64 + local.tee $0 + i64.extend_i32_s + i64.shl + local.tee $2 + i64.const 32 + i64.shr_u + local.tee $7 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $10 + i64.mul local.get $5 - i32.store offset=8 + local.get $7 + i64.mul local.get $2 - local.get $0 - i32.store offset=4 + i64.const 4294967295 + i64.and + local.tee $2 + local.get $5 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $5 + i64.const 32 + i64.shr_u + i64.add local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $3 - call $~lib/typedarray/Int16Array#__get - local.get $2 - local.get $3 - call $~lib/typedarray/Int16Array#__get - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end - end + local.get $10 + i64.mul + local.get $5 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + global.get $~lib/util/number/_exp_pow + local.tee $4 local.get $6 - call $~lib/rt/pure/__release local.get $0 - call $~lib/rt/pure/__release + i32.sub + i32.add + i32.const -64 + i32.sub + global.get $~lib/util/number/_frc_plus + local.tee $2 + i64.const 32 + i64.shr_u + local.tee $5 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $7 + i64.mul + local.get $3 + i64.const 4294967295 + i64.and + local.tee $10 + local.get $5 + i64.mul local.get $2 - call $~lib/rt/pure/__release + i64.const 4294967295 + i64.and + local.tee $2 + local.get $10 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $5 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $7 + i64.mul + local.get $5 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $2 + local.get $4 + global.get $~lib/util/number/_exp + i32.add + i32.const -64 + i32.sub + local.get $2 + global.get $~lib/util/number/_frc_minus + local.tee $2 + i64.const 32 + i64.shr_u + local.tee $5 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $7 + i64.mul + local.get $3 + i64.const 4294967295 + i64.and + local.tee $3 + local.get $5 + i64.mul + local.get $2 + i64.const 4294967295 + i64.and + local.tee $2 + local.get $3 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $3 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $7 + i64.mul + local.get $3 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + local.get $8 + call $~lib/util/number/genDigits + local.get $8 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.get $8 + i32.add ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> - (local $0 i32) + (func $~lib/util/number/dtoa (param $0 f64) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - i32.const 4540 - i32.load - local.tee $4 - call $~lib/typedarray/Uint16Array#constructor - local.tee $6 - local.set $1 - loop $for-loop|0 + local.get $0 + f64.const 0 + f64.eq + if + i32.const 3344 + return + end + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.ne + if local.get $0 - local.get $4 - i32.lt_s + local.get $0 + f64.ne if - local.get $1 - local.get $0 - i32.const 4528 - local.get $0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 3376 + return end + i32.const 3408 + i32.const 3456 + local.get $0 + f64.const 0 + f64.lt + select + call $~lib/rt/pure/__retain + return + end + i32.const 56 + i32.const 1 + call $~lib/rt/tlsf/__alloc + local.tee $1 + local.get $0 + call $~lib/util/number/dtoa_core + local.tee $2 + i32.const 28 + i32.eq + if + local.get $1 + call $~lib/rt/pure/__retain + return end local.get $1 - i32.load - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + call $~lib/string/String#substring + call $~lib/rt/tlsf/maybeInitialize local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + call $~lib/rt/tlsf/checkUsedBlock + call $~lib/rt/tlsf/freeBlock + ) + (func $~lib/util/number/dtoa_stream (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + local.get $0 local.get $1 - i32.load offset=8 + i32.const 1 + i32.shl i32.add - call $~lib/arraybuffer/ArrayBuffer#slice local.set $0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - local.tee $5 - i32.gt_u + local.get $2 + f64.const 0 + f64.eq if - i32.const 1376 - i32.const 1440 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable + 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 $5 - i32.const 1 - i32.and + local.get $2 + local.get $2 + f64.sub + f64.const 0 + f64.ne if - i32.const 1040 - i32.const 1440 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - i32.const 12 - i32.const 7 - call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $0 - call $~lib/rt/pure/__retain - i32.store - local.get $2 - local.get $5 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_s + local.get $2 + local.get $2 + f64.ne if - local.get $1 - local.get $3 - call $~lib/typedarray/Uint16Array#__get + 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 $2 - local.get $3 - call $~lib/typedarray/Uint16Array#__get - i32.ne + f64.const 0 + f64.lt + local.tee $1 if - i32.const 0 - i32.const 1312 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 end - local.get $3 - i32.const 1 + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $1 + i32.const 8 i32.add - local.set $3 - br $for-loop|1 + return end + unreachable end - local.get $6 - call $~lib/rt/pure/__release local.get $0 - call $~lib/rt/pure/__release local.get $2 - call $~lib/rt/pure/__release + call $~lib/util/number/dtoa_core ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - i32.const 4540 - i32.load - local.tee $4 - call $~lib/typedarray/Int32Array#constructor - local.tee $6 - local.set $1 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $0 - i32.const 4528 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $1 - i32.load - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + (local $7 i32) + local.get $2 + call $~lib/rt/pure/__retain + local.set $2 local.get $1 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $0 i32.const 1 - global.set $~argumentsLength - i32.const 0 - local.get $0 - i32.const 16 i32.sub - i32.load offset=12 - local.tee $5 - i32.gt_u + local.tee $4 + i32.const 0 + i32.lt_s if - i32.const 1376 - i32.const 1440 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $2 + call $~lib/rt/pure/__release + i32.const 2928 + return end - local.get $5 - i32.const 3 - i32.and + local.get $4 + i32.eqz if - i32.const 1040 - i32.const 1440 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable + local.get $0 + f32.load + f64.promote_f32 + call $~lib/util/number/dtoa + local.get $2 + call $~lib/rt/pure/__release + return end - i32.const 12 - i32.const 8 - call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $0 - call $~lib/rt/pure/__retain - i32.store - local.get $2 - local.get $5 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=4 + local.get $4 local.get $2 + call $~lib/string/String#get:length + local.tee $5 + i32.const 28 + i32.add + i32.mul + i32.const 28 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.set $2 - loop $for-loop|1 - local.get $3 + local.set $1 + loop $for-loop|0 + local.get $6 local.get $4 i32.lt_s if local.get $1 local.get $3 - call $~lib/typedarray/Int32Array#__get - local.get $2 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + f64.promote_f32 + call $~lib/util/number/dtoa_stream local.get $3 - call $~lib/typedarray/Int32Array#__get - i32.ne + i32.add + local.set $3 + local.get $5 if - i32.const 0 - i32.const 1312 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $5 + i32.add + local.set $3 end - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 - br $for-loop|1 + local.set $6 + br $for-loop|0 end end - local.get $6 - call $~lib/rt/pure/__release + local.get $7 + local.get $1 + local.get $3 local.get $0 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - i32.const 4540 - i32.load - local.tee $4 - call $~lib/typedarray/Uint32Array#constructor - local.tee $6 - local.set $1 - loop $for-loop|0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load + f64.promote_f32 + call $~lib/util/number/dtoa_stream + local.get $3 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + return + end + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + ) + (func $~lib/typedarray/Float32Array#join (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 3264 + call $~lib/util/string/joinFloatArray + i32.const 3264 + call $~lib/rt/pure/__release + ) + (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.get $2 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + i32.const 1 + i32.sub + local.tee $4 + i32.const 0 + i32.lt_s + if + local.get $2 + call $~lib/rt/pure/__release + i32.const 2928 + return + end + local.get $4 + i32.eqz + if local.get $0 + f64.load + call $~lib/util/number/dtoa + local.get $2 + call $~lib/rt/pure/__release + return + end + local.get $4 + local.get $2 + call $~lib/string/String#get:length + local.tee $5 + i32.const 28 + i32.add + i32.mul + i32.const 28 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $1 + loop $for-loop|0 + local.get $6 local.get $4 i32.lt_s if local.get $1 + local.get $3 local.get $0 - i32.const 4528 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + call $~lib/util/number/dtoa_stream + local.get $3 + i32.add + local.set $3 + local.get $5 + if + local.get $1 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $5 + i32.add + local.set $3 + end + local.get $6 i32.const 1 i32.add - local.set $0 + local.set $6 br $for-loop|0 end end + local.get $7 local.get $1 - i32.load - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $3 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + call $~lib/util/number/dtoa_stream + local.get $3 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + return + end + local.get $2 + call $~lib/rt/pure/__release local.get $1 + ) + (func $~lib/typedarray/Float64Array#join (param $0 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $0 - i32.const 1 - global.set $~argumentsLength + i32.const 3 + i32.shr_u + i32.const 3264 + call $~lib/util/string/joinFloatArray + i32.const 3264 + call $~lib/rt/pure/__release + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) + (local $1 i32) + local.get $0 + i32.const 1073741808 + i32.gt_u + if + i32.const 1040 + i32.const 1088 + i32.const 49 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.tee $1 i32.const 0 local.get $0 + call $~lib/memory/memory.fill + local.get $1 + call $~lib/rt/pure/__retain + local.tee $0 + ) + (func $~lib/typedarray/Uint8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $5 + call $~lib/rt/pure/__retain + local.tee $3 i32.const 16 i32.sub i32.load offset=12 - local.tee $5 + local.tee $4 i32.gt_u if i32.const 1376 @@ -20256,68 +20880,159 @@ call $~lib/builtins/abort unreachable end - local.get $5 - i32.const 3 - i32.and + local.get $2 + i32.const 0 + i32.lt_s if - i32.const 1040 - i32.const 1440 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable + local.get $2 + i32.const -1 + i32.eq + if (result i32) + local.get $4 + local.get $1 + i32.sub + else + i32.const 1040 + i32.const 1440 + i32.const 1750 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.set $0 + else + local.get $2 + local.tee $0 + local.get $1 + i32.add + local.get $4 + i32.gt_s + if + i32.const 1040 + i32.const 1440 + i32.const 1755 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end i32.const 12 - i32.const 9 + i32.const 4 call $~lib/rt/tlsf/__alloc local.tee $2 - local.get $0 + local.get $3 call $~lib/rt/pure/__retain i32.store local.get $2 - local.get $5 + local.get $0 i32.store offset=8 local.get $2 - local.get $0 + local.get $1 + local.get $3 + i32.add i32.store offset=4 local.get $2 call $~lib/rt/pure/__retain - local.set $2 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $3 - call $~lib/typedarray/Uint32Array#__get - local.get $2 - local.get $3 - call $~lib/typedarray/Uint32Array#__get - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 684 - i32.const 5 - call $~lib/builtins/abort + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end unreachable end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 + i32.const 0 + local.set $1 end + i32.const -1 + local.set $2 end - local.get $6 - call $~lib/rt/pure/__release local.get $0 - call $~lib/rt/pure/__release + local.get $1 local.get $2 - call $~lib/rt/pure/__release + call $~lib/typedarray/Uint8Array.wrap ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> + (func $~lib/arraybuffer/ArrayBuffer#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $0 + i32.const 16 + i32.sub + 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 + call $~lib/rt/tlsf/__alloc + local.tee $3 + local.get $0 + local.get $1 + i32.add + local.get $2 + call $~lib/memory/memory.copy + local.get $3 + call $~lib/rt/pure/__retain + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> (local $0 i32) (local $1 i32) (local $2 i32) @@ -20325,11 +21040,14 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) i32.const 4540 i32.load local.tee $4 - call $~lib/typedarray/Int64Array#constructor + call $~lib/typedarray/Int8Array#constructor local.tee $6 + call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 local.get $0 @@ -20341,8 +21059,11 @@ i32.const 4528 local.get $0 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 1 i32.add @@ -20360,15 +21081,21 @@ i32.load offset=8 i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.set $0 + local.set $5 i32.const 1 global.set $~argumentsLength - i32.const 0 - local.get $0 + local.get $5 + call $~lib/rt/pure/__retain + local.tee $7 + call $~lib/rt/pure/__retain + local.tee $3 i32.const 16 i32.sub i32.load offset=12 - local.tee $5 + local.tee $0 + local.set $8 + i32.const 0 + local.get $0 i32.gt_u if i32.const 1376 @@ -20378,45 +21105,38 @@ call $~lib/builtins/abort unreachable end - local.get $5 - i32.const 7 - i32.and - if - i32.const 1040 - i32.const 1440 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable - end i32.const 12 - i32.const 10 + i32.const 3 call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $0 + local.tee $0 + local.get $3 call $~lib/rt/pure/__retain i32.store - local.get $2 - local.get $5 + local.get $0 + local.get $8 i32.store offset=8 - local.get $2 local.get $0 + local.get $3 i32.store offset=4 - local.get $2 + local.get $0 call $~lib/rt/pure/__retain - local.set $2 + local.set $0 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release loop $for-loop|1 - local.get $3 + local.get $2 local.get $4 i32.lt_s if local.get $1 - local.get $3 - call $~lib/typedarray/Int64Array#__get local.get $2 - local.get $3 - call $~lib/typedarray/Int64Array#__get - i64.ne + call $~lib/typedarray/Int8Array#__get + local.get $0 + local.get $2 + call $~lib/typedarray/Int8Array#__get + i32.ne if i32.const 0 i32.const 1312 @@ -20425,120 +21145,87 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|1 end end local.get $6 call $~lib/rt/pure/__release - local.get $0 + i32.const 4528 call $~lib/rt/pure/__release - local.get $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) i32.const 4540 i32.load - local.tee $4 - call $~lib/typedarray/Uint64Array#constructor - local.tee $6 - local.set $1 + local.tee $3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + call $~lib/rt/pure/__retain + local.set $0 loop $for-loop|0 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 4528 - local.get $0 + local.get $1 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $0 + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end - local.get $1 + local.get $0 i32.load - local.get $1 + local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $1 + local.get $0 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $1 + local.get $0 i32.load offset=8 i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.set $0 + local.set $1 i32.const 1 global.set $~argumentsLength + local.get $1 i32.const 0 - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - local.tee $5 - i32.gt_u - if - i32.const 1376 - i32.const 1440 - i32.const 1741 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const 7 - i32.and - if - i32.const 1040 - i32.const 1440 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - i32.const 12 - i32.const 11 - call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $0 - call $~lib/rt/pure/__retain - i32.store - local.get $2 - local.get $5 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.set $4 loop $for-loop|1 + local.get $2 local.get $3 - local.get $4 i32.lt_s if - local.get $1 - local.get $3 - call $~lib/typedarray/Uint64Array#__get + local.get $0 local.get $2 - local.get $3 - call $~lib/typedarray/Uint64Array#__get - i64.ne + call $~lib/typedarray/Uint8Array#__get + local.get $4 + local.get $2 + call $~lib/typedarray/Uint8Array#__get + i32.ne if i32.const 0 i32.const 1312 @@ -20547,21 +21234,25 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|1 end end - local.get $6 + local.get $5 + call $~lib/rt/pure/__release + i32.const 4528 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> (local $0 i32) (local $1 i32) (local $2 i32) @@ -20569,11 +21260,14 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) i32.const 4540 i32.load local.tee $4 - call $~lib/typedarray/Float32Array#constructor + call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $6 + call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 local.get $0 @@ -20585,8 +21279,9 @@ i32.const 4528 local.get $0 call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 1 i32.add @@ -20604,15 +21299,21 @@ i32.load offset=8 i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.set $0 + local.set $5 i32.const 1 global.set $~argumentsLength - i32.const 0 - local.get $0 + local.get $5 + call $~lib/rt/pure/__retain + local.tee $7 + call $~lib/rt/pure/__retain + local.tee $3 i32.const 16 i32.sub i32.load offset=12 - local.tee $5 + local.tee $0 + local.set $8 + i32.const 0 + local.get $0 i32.gt_u if i32.const 1376 @@ -20622,45 +21323,38 @@ call $~lib/builtins/abort unreachable end - local.get $5 - i32.const 3 - i32.and - if - i32.const 1040 - i32.const 1440 - i32.const 1746 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - i32.const 12 i32.const 12 + i32.const 5 call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $0 + local.tee $0 + local.get $3 call $~lib/rt/pure/__retain i32.store - local.get $2 - local.get $5 + local.get $0 + local.get $8 i32.store offset=8 - local.get $2 local.get $0 + local.get $3 i32.store offset=4 - local.get $2 + local.get $0 call $~lib/rt/pure/__retain - local.set $2 + local.set $0 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release loop $for-loop|1 - local.get $3 + local.get $2 local.get $4 i32.lt_s if local.get $1 - local.get $3 - call $~lib/typedarray/Float32Array#__get local.get $2 - local.get $3 - call $~lib/typedarray/Float32Array#__get - f32.ne + call $~lib/typedarray/Uint8ClampedArray#__get + local.get $0 + local.get $2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.ne if i32.const 0 i32.const 1312 @@ -20669,21 +21363,25 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|1 end end local.get $6 call $~lib/rt/pure/__release - local.get $0 + i32.const 4528 call $~lib/rt/pure/__release - local.get $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 call $~lib/rt/pure/__release ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> (local $0 i32) (local $1 i32) (local $2 i32) @@ -20691,11 +21389,14 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) i32.const 4540 i32.load local.tee $4 - call $~lib/typedarray/Float64Array#constructor - local.tee $6 + call $~lib/typedarray/Int16Array#constructor + local.tee $7 + call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 local.get $0 @@ -20707,8 +21408,11 @@ i32.const 4528 local.get $0 call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set local.get $0 i32.const 1 i32.add @@ -20726,15 +21430,19 @@ i32.load offset=8 i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.set $0 + local.set $5 i32.const 1 global.set $~argumentsLength i32.const 0 - local.get $0 + local.get $5 + call $~lib/rt/pure/__retain + local.tee $8 + call $~lib/rt/pure/__retain + local.tee $3 i32.const 16 i32.sub i32.load offset=12 - local.tee $5 + local.tee $6 i32.gt_u if i32.const 1376 @@ -20744,8 +21452,8 @@ call $~lib/builtins/abort unreachable end - local.get $5 - i32.const 7 + local.get $6 + i32.const 1 i32.and if i32.const 1040 @@ -20756,33 +21464,37 @@ unreachable end i32.const 12 - i32.const 13 + i32.const 6 call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $0 + local.tee $0 + local.get $3 call $~lib/rt/pure/__retain i32.store - local.get $2 - local.get $5 + local.get $0 + local.get $6 i32.store offset=8 - local.get $2 local.get $0 + local.get $3 i32.store offset=4 - local.get $2 + local.get $0 call $~lib/rt/pure/__retain - local.set $2 + local.set $0 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release loop $for-loop|1 - local.get $3 + local.get $2 local.get $4 i32.lt_s if local.get $1 - local.get $3 - call $~lib/typedarray/Float64Array#__get local.get $2 - local.get $3 - call $~lib/typedarray/Float64Array#__get - f64.ne + call $~lib/typedarray/Int16Array#__get + local.get $0 + local.get $2 + call $~lib/typedarray/Int16Array#__get + i32.ne if i32.const 0 i32.const 1312 @@ -20791,120 +21503,141 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|1 end end - local.get $6 + local.get $7 call $~lib/rt/pure/__release - local.get $0 + i32.const 4528 call $~lib/rt/pure/__release - local.get $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> + (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - i32.const 4604 - i32.load - local.get $0 - i32.load offset=8 - i32.gt_s - if - i32.const 1376 - i32.const 1440 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - i32.const 4596 - i32.load - local.set $2 - i32.const 4604 + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + i32.const 4540 i32.load - local.set $3 + local.tee $4 + call $~lib/typedarray/Uint16Array#constructor + local.tee $7 + call $~lib/rt/pure/__retain + local.set $1 loop $for-loop|0 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $0 - local.get $1 - i32.add - local.get $2 local.get $1 - i32.const 2 - i32.shl + local.get $0 + i32.const 4528 + local.get $0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 i32.add - i32.load - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 + local.set $0 br $for-loop|0 end end - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 + local.get $1 + i32.load + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $1 i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $5 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + local.get $5 + call $~lib/rt/pure/__retain + local.tee $8 + call $~lib/rt/pure/__retain local.tee $3 - local.get $1 + i32.const 16 + i32.sub i32.load offset=12 - i32.ne + local.tee $6 + i32.gt_u if - i32.const 0 - i32.const 1312 - i32.const 712 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1741 + i32.const 5 call $~lib/builtins/abort unreachable end - loop $for-loop|0 + local.get $6 + i32.const 1 + i32.and + if + i32.const 1040 + i32.const 1440 + i32.const 1746 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + i32.const 12 + i32.const 7 + call $~lib/rt/tlsf/__alloc + local.tee $0 + local.get $3 + call $~lib/rt/pure/__retain + i32.store + local.get $0 + local.get $6 + i32.store offset=8 + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + loop $for-loop|1 local.get $2 - local.get $3 + local.get $4 i32.lt_s if + local.get $1 local.get $2 + call $~lib/typedarray/Uint16Array#__get local.get $0 - i32.load offset=4 - i32.add - i32.load8_s - local.tee $4 - local.get $1 local.get $2 - call $~lib/array/Array#__uget - local.tee $5 + call $~lib/typedarray/Uint16Array#__get i32.ne if - i32.const 4864 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.convert_i32_s - local.get $5 - f64.convert_i32_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace i32.const 0 i32.const 1312 - i32.const 718 - i32.const 7 + i32.const 684 + i32.const 5 call $~lib/builtins/abort unreachable end @@ -20912,171 +21645,293 @@ i32.const 1 i32.add local.set $2 - br $for-loop|0 + br $for-loop|1 end end + local.get $7 + call $~lib/rt/pure/__release + i32.const 4528 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 6 - i32.add - local.get $0 - i32.load offset=8 - i32.gt_s - if - i32.const 1376 - i32.const 1440 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 6 - i32.add - local.set $0 - local.get $1 - i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + i32.const 4540 + i32.load + local.tee $4 + call $~lib/typedarray/Int32Array#constructor + local.tee $7 + call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 - local.get $2 - local.get $1 + local.get $0 + local.get $4 i32.lt_s if + local.get $1 + local.get $0 + i32.const 4528 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set local.get $0 - local.get $2 - i32.add - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store8 - local.get $2 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|0 end end - ) - (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + local.get $1 + i32.load + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.get $1 i32.load offset=8 - local.get $0 - i32.load offset=8 - i32.gt_s + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $5 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + local.get $5 + call $~lib/rt/pure/__retain + local.tee $8 + call $~lib/rt/pure/__retain + local.tee $3 + i32.const 16 + i32.sub + i32.load offset=12 + local.tee $6 + i32.gt_u if i32.const 1376 i32.const 1440 - i32.const 1775 - i32.const 47 + i32.const 1741 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 - i32.load offset=4 - local.get $1 - i32.load offset=4 - local.get $1 - i32.load offset=8 - call $~lib/memory/memory.copy - ) - (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.const 4 - i32.add - local.get $0 - i32.load offset=8 - i32.gt_s + local.get $6 + i32.const 3 + i32.and if - i32.const 1376 + i32.const 1040 i32.const 1440 - i32.const 1775 - i32.const 47 + i32.const 1746 + i32.const 9 call $~lib/builtins/abort unreachable end + i32.const 12 + i32.const 8 + call $~lib/rt/tlsf/__alloc + local.tee $0 + local.get $3 + call $~lib/rt/pure/__retain + i32.store local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $1 - loop $for-loop|0 + local.get $6 + i32.store offset=8 + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + loop $for-loop|1 local.get $2 - local.get $1 + local.get $4 i32.lt_s if + local.get $1 + local.get $2 + call $~lib/typedarray/Int32Array#__get local.get $0 local.get $2 - i32.add - local.get $3 + call $~lib/typedarray/Int32Array#__get + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 684 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $2 i32.const 1 - i32.shl i32.add - i32.load16_s - i32.store8 - local.get $2 + local.set $2 + br $for-loop|1 + end + end + local.get $7 + call $~lib/rt/pure/__release + i32.const 4528 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + i32.const 4540 + i32.load + local.tee $4 + call $~lib/typedarray/Uint32Array#constructor + local.tee $7 + call $~lib/rt/pure/__retain + local.set $1 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 4528 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|0 end end - ) - (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) - i32.const 4812 + local.get $1 i32.load - i32.const 7 - i32.add - local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $1 i32.load offset=8 - i32.gt_s + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $5 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + local.get $5 + call $~lib/rt/pure/__retain + local.tee $8 + call $~lib/rt/pure/__retain + local.tee $3 + i32.const 16 + i32.sub + i32.load offset=12 + local.tee $6 + i32.gt_u if i32.const 1376 i32.const 1440 - i32.const 1775 - i32.const 47 + i32.const 1741 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 3 + i32.and + if + i32.const 1040 + i32.const 1440 + i32.const 1746 + i32.const 9 call $~lib/builtins/abort unreachable end + i32.const 12 + i32.const 9 + call $~lib/rt/tlsf/__alloc + local.tee $0 + local.get $3 + call $~lib/rt/pure/__retain + i32.store local.get $0 - i32.load offset=4 - i32.const 7 - i32.add - i32.const 4804 - i32.load - i32.const 4808 - i32.load - call $~lib/memory/memory.copy + local.get $6 + i32.store offset=8 + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + loop $for-loop|1 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $2 + call $~lib/typedarray/Uint32Array#__get + local.get $0 + local.get $2 + call $~lib/typedarray/Uint32Array#__get + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 684 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $7 + call $~lib/rt/pure/__release + i32.const 4528 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> + (func $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> (local $0 i32) (local $1 i32) (local $2 i32) @@ -21085,314 +21940,250 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 f32) - (local $9 f64) - (local $10 i32) - (local $11 i32) - (local $12 i32) - i32.const 3 + (local $8 i32) + i32.const 4540 + i32.load + local.tee $4 call $~lib/typedarray/Int64Array#constructor - local.tee $3 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $3 + local.tee $7 + call $~lib/rt/pure/__retain + local.set $1 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 4528 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + local.get $1 + i32.load + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $1 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $5 i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + global.set $~argumentsLength i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $4 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $4 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - i32.const 10 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - local.get $1 + local.get $5 + call $~lib/rt/pure/__retain + local.tee $8 + call $~lib/rt/pure/__retain + local.tee $3 + i32.const 16 + i32.sub + i32.load offset=12 + local.tee $6 + i32.gt_u + if + i32.const 1376 + i32.const 1440 + i32.const 1741 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 7 + i32.and + if + i32.const 1040 + i32.const 1440 + i32.const 1746 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + i32.const 12 i32.const 10 - i32.const 0 - i32.const 14 - i32.const 4832 - call $~lib/rt/__allocArray + call $~lib/rt/tlsf/__alloc + local.tee $0 + local.get $3 call $~lib/rt/pure/__retain - local.tee $10 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - block $folding-inner0 - i32.const 4668 - i32.load - i32.const 3 - i32.add - local.get $1 - i32.load offset=8 - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.add - local.set $5 - i32.const 4660 - i32.load - local.set $6 - i32.const 4668 - i32.load - local.set $7 - loop $for-loop|0 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $0 - local.get $5 - i32.add - local.get $6 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $8 - local.get $8 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $8 - i32.trunc_f32_s - else - i32.const 0 - end - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $1 - i32.const 10 - i32.const 0 - i32.const 14 - i32.const 4912 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $1 - local.get $3 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> - local.get $1 - i32.const 10 - i32.const 0 - i32.const 14 - i32.const 4944 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - i32.const 0 - local.set $0 - i32.const 4748 - i32.load - i32.const 2 - i32.add - local.get $1 - i32.load offset=8 - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 2 - i32.add - local.set $7 - i32.const 4740 - i32.load - local.set $11 - i32.const 4748 - i32.load - local.set $12 - loop $for-loop|00 + i32.store + local.get $0 + local.get $6 + i32.store offset=8 + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + loop $for-loop|1 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $2 + call $~lib/typedarray/Int64Array#__get local.get $0 - local.get $12 - i32.lt_s + local.get $2 + call $~lib/typedarray/Int64Array#__get + i64.ne if - local.get $0 - local.get $7 - i32.add - local.get $11 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $9 - local.get $9 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $9 - i32.trunc_f64_s - else - i32.const 0 - end - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 + i32.const 0 + i32.const 1312 + i32.const 684 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 end - local.get $1 - i32.const 10 - i32.const 0 - i32.const 14 - i32.const 4976 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - local.get $2 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $1 - local.get $4 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> - local.get $1 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - local.get $1 - i32.const 10 - i32.const 0 - i32.const 14 - i32.const 5008 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - return end - i32.const 1376 - i32.const 1440 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Uint8Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $7 + call $~lib/rt/pure/__release + i32.const 4528 + call $~lib/rt/pure/__release local.get $1 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - ) - (func $~lib/array/Array#__uget (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.load8_u + call $~lib/rt/pure/__release ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $0 + (local $6 i32) + (local $7 i32) + (local $8 i32) + i32.const 4540 + i32.load + local.tee $4 + call $~lib/typedarray/Uint64Array#constructor + local.tee $7 + call $~lib/rt/pure/__retain + local.set $1 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 4528 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + local.get $1 + i32.load + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $1 i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $5 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + local.get $5 + call $~lib/rt/pure/__retain + local.tee $8 + call $~lib/rt/pure/__retain local.tee $3 - local.get $1 + i32.const 16 + i32.sub i32.load offset=12 - i32.ne + local.tee $6 + i32.gt_u if - i32.const 0 - i32.const 1312 - i32.const 712 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1741 + i32.const 5 call $~lib/builtins/abort unreachable end - loop $for-loop|0 + local.get $6 + i32.const 7 + i32.and + if + i32.const 1040 + i32.const 1440 + i32.const 1746 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + i32.const 12 + i32.const 11 + call $~lib/rt/tlsf/__alloc + local.tee $0 + local.get $3 + call $~lib/rt/pure/__retain + i32.store + local.get $0 + local.get $6 + i32.store offset=8 + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + loop $for-loop|1 local.get $2 - local.get $3 + local.get $4 i32.lt_s if - local.get $0 - local.get $2 - call $~lib/typedarray/Uint8Array#__uget - local.tee $4 local.get $1 local.get $2 - call $~lib/array/Array#__uget - local.tee $5 - i32.ne + call $~lib/typedarray/Uint64Array#__get + local.get $0 + local.get $2 + call $~lib/typedarray/Uint64Array#__get + i64.ne if - i32.const 5072 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.convert_i32_u - local.get $5 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace i32.const 0 i32.const 1312 - i32.const 718 - i32.const 7 + i32.const 684 + i32.const 5 call $~lib/builtins/abort unreachable end @@ -21400,11 +22191,21 @@ i32.const 1 i32.add local.set $2 - br $for-loop|0 + br $for-loop|1 end end + local.get $7 + call $~lib/rt/pure/__release + i32.const 4528 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + (func $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> (local $0 i32) (local $1 i32) (local $2 i32) @@ -21413,300 +22214,113 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 f32) - (local $9 f64) - (local $10 i32) - (local $11 i32) - (local $12 i32) - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - i32.const 3 - call $~lib/typedarray/Int16Array#constructor + (local $8 i32) + i32.const 4540 + i32.load local.tee $4 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $4 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $4 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - i32.const 10 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> + call $~lib/typedarray/Float32Array#constructor + local.tee $7 + call $~lib/rt/pure/__retain + local.set $1 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 4528 + local.get $0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end local.get $1 - i32.const 10 + i32.load + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $1 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $5 + i32.const 1 + global.set $~argumentsLength i32.const 0 - i32.const 18 - i32.const 5040 - call $~lib/rt/__allocArray + local.get $5 + call $~lib/rt/pure/__retain + local.tee $8 call $~lib/rt/pure/__retain - local.tee $10 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - block $folding-inner0 - i32.const 4668 - i32.load - i32.const 3 - i32.add - local.get $1 - i32.load offset=8 - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.add - local.set $5 - i32.const 4660 - i32.load - local.set $6 - i32.const 4668 - i32.load - local.set $7 - loop $for-loop|0 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $0 - local.get $5 - i32.add - local.get $6 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $8 - local.get $8 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $8 - i32.trunc_f32_u - else - i32.const 0 - end - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $1 - i32.const 10 - i32.const 0 - i32.const 18 - i32.const 5120 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $1 - local.get $3 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> - local.get $1 - i32.const 10 - i32.const 0 - i32.const 18 - i32.const 5152 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - i32.const 0 - local.set $0 - i32.const 4748 - i32.load - i32.const 2 - i32.add - local.get $1 - i32.load offset=8 - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 2 - i32.add - local.set $7 - i32.const 4740 - i32.load - local.set $11 - i32.const 4748 - i32.load - local.set $12 - loop $for-loop|00 - local.get $0 - local.get $12 - i32.lt_s - if - local.get $0 - local.get $7 - i32.add - local.get $11 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $9 - local.get $9 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $9 - i32.trunc_f64_u - else - i32.const 0 - end - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - end - end - local.get $1 - i32.const 10 - i32.const 0 - i32.const 18 - i32.const 5184 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - local.get $2 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $1 - local.get $4 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> - local.get $1 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - local.get $1 - i32.const 10 - i32.const 0 - i32.const 18 - i32.const 5216 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - return - end - i32.const 1376 - i32.const 1440 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.load offset=8 local.tee $3 - local.get $1 + i32.const 16 + i32.sub i32.load offset=12 - i32.ne + local.tee $6 + i32.gt_u if - i32.const 0 - i32.const 1312 - i32.const 712 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1741 + i32.const 5 call $~lib/builtins/abort unreachable end - loop $for-loop|0 + local.get $6 + i32.const 3 + i32.and + if + i32.const 1040 + i32.const 1440 + i32.const 1746 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + i32.const 12 + i32.const 12 + call $~lib/rt/tlsf/__alloc + local.tee $0 + local.get $3 + call $~lib/rt/pure/__retain + i32.store + local.get $0 + local.get $6 + i32.store offset=8 + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + loop $for-loop|1 local.get $2 - local.get $3 + local.get $4 i32.lt_s if - local.get $0 - local.get $2 - call $~lib/typedarray/Uint8Array#__uget - local.tee $4 local.get $1 local.get $2 - call $~lib/array/Array#__uget - local.tee $5 - i32.ne + call $~lib/typedarray/Float32Array#__get + local.get $0 + local.get $2 + call $~lib/typedarray/Float32Array#__get + f32.ne if - i32.const 5280 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.convert_i32_u - local.get $5 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace i32.const 0 i32.const 1312 - i32.const 718 - i32.const 7 + i32.const 684 + i32.const 5 call $~lib/builtins/abort unreachable end @@ -21714,114 +22328,170 @@ i32.const 1 i32.add local.set $2 - br $for-loop|0 + br $for-loop|1 end end - ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i64) - local.get $2 - i32.const 0 - i32.lt_s - if - i32.const 1376 - i32.const 1440 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $2 + local.get $7 + call $~lib/rt/pure/__release + i32.const 4528 + call $~lib/rt/pure/__release local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.add + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release local.get $0 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + i32.const 4540 + i32.load + local.tee $4 + call $~lib/typedarray/Float64Array#constructor + local.tee $7 + call $~lib/rt/pure/__retain + local.set $1 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 4528 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + local.get $1 + i32.load + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $1 i32.load offset=8 - i32.gt_s + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $5 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + local.get $5 + call $~lib/rt/pure/__retain + local.tee $8 + call $~lib/rt/pure/__retain + local.tee $3 + i32.const 16 + i32.sub + i32.load offset=12 + local.tee $6 + i32.gt_u if i32.const 1376 i32.const 1440 - i32.const 1775 - i32.const 47 + i32.const 1741 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $2 + local.get $6 + i32.const 7 + i32.and + if + i32.const 1040 + i32.const 1440 + i32.const 1746 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + i32.const 12 + i32.const 13 + call $~lib/rt/tlsf/__alloc + local.tee $0 + local.get $3 + call $~lib/rt/pure/__retain + i32.store local.get $0 - i32.load offset=4 - i32.add + local.get $6 + i32.store offset=8 + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + call $~lib/rt/pure/__retain local.set $0 - local.get $1 - i32.load offset=4 - local.set $2 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $1 - loop $for-loop|0 - local.get $3 - local.get $1 + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + loop $for-loop|1 + local.get $2 + local.get $4 i32.lt_s if + local.get $1 + local.get $2 + call $~lib/typedarray/Float64Array#__get local.get $0 - local.get $3 - i32.add local.get $2 - local.get $3 - i32.const 3 - i32.shl - i32.add - i64.load - local.tee $4 - i32.wrap_i64 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i64.extend_i32_s - local.get $4 - i32.const 255 - local.get $4 - i32.wrap_i64 - i32.sub - i32.const 31 - i32.shr_s - i64.extend_i32_s - i64.or - i64.and - i64.store8 - local.get $3 + call $~lib/typedarray/Float64Array#__get + f64.ne + if + i32.const 0 + i32.const 1312 + i32.const 684 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 i32.const 1 i32.add - local.set $3 - br $for-loop|0 + local.set $2 + br $for-loop|1 end end + local.get $7 + call $~lib/rt/pure/__release + i32.const 4528 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) - local.get $2 - i32.const 0 - i32.lt_s - if - i32.const 1376 - i32.const 1440 - i32.const 1774 - i32.const 19 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.add + (local $5 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4592 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 local.get $0 i32.load offset=8 i32.gt_s @@ -21833,444 +22503,134 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $0 i32.load offset=4 - i32.add - local.set $2 - local.get $1 + local.set $3 + local.get $2 i32.load offset=4 local.set $4 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $1 + local.get $2 + i32.load offset=12 + local.set $5 loop $for-loop|0 - local.get $3 local.get $1 + local.get $5 i32.lt_s if - local.get $2 + local.get $1 local.get $3 i32.add local.get $4 - local.get $3 - i32.const 1 + local.get $1 + i32.const 2 i32.shl i32.add - i32.load16_s - local.tee $0 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - local.get $0 - i32.const 255 - local.get $0 - i32.sub - i32.const 31 - i32.shr_s - i32.or - i32.and + i32.load i32.store8 - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|0 end end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4592 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> - (local $0 i32) - (local $1 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 f32) - (local $13 f64) - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $7 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $7 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $7 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $8 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $8 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $8 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - i32.const 10 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - local.set $3 - block $folding-inner0 - i32.const 4604 - i32.load - local.get $1 - i32.load offset=8 - i32.gt_s - br_if $folding-inner0 - local.get $3 - i32.load offset=4 - local.set $9 - i32.const 4596 - i32.load - local.set $4 - i32.const 4604 - i32.load - local.set $5 - loop $for-loop|0 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $0 - local.get $9 - i32.add - local.get $4 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $3 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - local.get $3 - i32.const 255 - local.get $3 - i32.sub - i32.const 31 - i32.shr_s - i32.or - i32.and - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $1 - i32.const 10 - i32.const 0 - i32.const 18 - i32.const 5248 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + 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 offset=8 + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if i32.const 0 - local.set $0 - i32.const 4668 - i32.load - i32.const 3 - i32.add - local.get $1 - i32.load offset=8 - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 + i32.const 1312 + i32.const 712 i32.const 3 - i32.add - local.set $4 - i32.const 4660 - i32.load - local.set $5 - i32.const 4668 - i32.load - local.set $6 - loop $for-loop|00 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 local.get $0 - local.get $6 - i32.lt_s + i32.load offset=4 + i32.add + i32.load8_s + local.tee $4 + local.get $1 + local.get $2 + call $~lib/array/Array#__uget + local.tee $5 + i32.ne if - local.get $0 + i32.const 4864 + i32.const 3 + local.get $2 + f64.convert_i32_s local.get $4 - i32.add + f64.convert_i32_s local.get $5 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $12 - local.get $12 - f32.sub - f32.const 0 - f32.eq - if (result i32) - f32.const 0 - f32.const 255 - local.get $12 - f32.min - f32.max - i32.trunc_f32_u - else - i32.const 0 - end - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - end - end - local.get $1 - i32.const 10 - i32.const 0 - i32.const 18 - i32.const 5344 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $4 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $1 - local.get $7 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - local.get $1 - i32.const 10 - i32.const 0 - i32.const 18 - i32.const 5376 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - i32.const 0 - local.set $0 - i32.const 4748 - i32.load - i32.const 2 - i32.add - local.get $1 - i32.load offset=8 - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 2 - i32.add - local.set $6 - i32.const 4740 - i32.load - local.set $10 - i32.const 4748 - i32.load - local.set $11 - loop $for-loop|01 - local.get $0 - local.get $11 - i32.lt_s - if - local.get $0 - local.get $6 - i32.add - local.get $10 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $13 - local.get $13 - f64.sub + f64.convert_i32_s f64.const 0 - f64.eq - if (result i32) - f64.const 0 - f64.const 255 - local.get $13 - f64.min - f64.max - i32.trunc_f64_u - else - i32.const 0 - end - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|01 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1312 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - local.get $1 - i32.const 10 - i32.const 0 - i32.const 18 - i32.const 5408 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $0 - call $~lib/rt/pure/__release - local.get $2 - i32.load offset=8 - local.get $1 - i32.load offset=8 - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - local.get $2 - i32.load offset=4 - local.get $2 - i32.load offset=8 - call $~lib/memory/memory.copy - local.get $1 - local.get $8 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> - i32.const 0 - local.set $0 - i32.const 4812 - i32.load - i32.const 7 - i32.add - local.get $1 - i32.load offset=8 - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 7 - i32.add - local.set $6 - i32.const 4804 - i32.load - local.set $10 - i32.const 4812 - i32.load - local.set $11 - loop $for-loop|02 - local.get $0 - local.get $11 - i32.lt_s - if - local.get $0 - local.get $6 - i32.add - local.get $0 - local.get $10 - i32.add - i32.load8_s - local.tee $3 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - local.get $3 - i32.const 255 - local.get $3 - i32.sub - i32.const 31 - i32.shr_s - i32.or - i32.and - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|02 - end - end - local.get $1 - i32.const 10 - i32.const 0 - i32.const 18 - i32.const 5440 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $0 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - return end - i32.const 1376 - i32.const 1440 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 4604 - i32.load + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4656 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 + i32.const 3 + i32.add local.get $0 i32.load offset=8 - i32.const 1 - i32.shr_u i32.gt_s if i32.const 1376 @@ -22282,30 +22642,41 @@ end local.get $0 i32.load offset=4 - local.set $0 - i32.const 4596 - i32.load - local.set $2 - i32.const 4604 - i32.load - local.set $3 + i32.const 3 + i32.add + local.set $4 + local.get $2 + i32.load offset=4 + local.set $5 + local.get $2 + i32.load offset=12 + local.set $6 loop $for-loop|0 local.get $1 - local.get $3 + local.get $6 i32.lt_s if - local.get $0 local.get $1 - i32.const 1 - i32.shl + local.get $4 i32.add - local.get $2 + local.get $5 local.get $1 i32.const 2 i32.shl i32.add - i32.load - i32.store16 + f32.load + local.tee $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $3 + i32.trunc_f32_s + else + i32.const 0 + end + i32.store8 local.get $1 i32.const 1 i32.add @@ -22313,82 +22684,28 @@ br $for-loop|0 end end - ) - (func $~lib/typedarray/Int16Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $2 + call $~lib/rt/pure/__release local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s + call $~lib/rt/pure/__release + i32.const 4656 + call $~lib/rt/pure/__release ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $3 - local.get $1 - i32.load offset=12 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 712 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - call $~lib/typedarray/Int16Array#__uget - local.tee $4 - local.get $1 - local.get $2 - call $~lib/typedarray/Int16Array#__uget - local.tee $5 - i32.ne - if - i32.const 5520 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.convert_i32_s - local.get $5 - f64.convert_i32_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1312 - i32.const 718 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - ) - (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) + (local $6 i32) local.get $1 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u @@ -22396,8 +22713,6 @@ i32.add local.get $0 i32.load offset=8 - i32.const 1 - i32.shr_u i32.gt_s if i32.const 1376 @@ -22409,34 +22724,32 @@ end local.get $0 i32.load offset=4 - i32.const 12 + i32.const 6 i32.add - local.set $0 + local.set $4 local.get $1 i32.load offset=4 - local.set $3 + local.set $5 local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $6 loop $for-loop|0 local.get $2 - local.get $1 + local.get $6 i32.lt_s if - local.get $0 local.get $2 - i32.const 1 - i32.shl + local.get $4 i32.add - local.get $3 + local.get $5 local.get $2 i32.const 3 i32.shl i32.add i64.load - i64.store16 + i64.store8 local.get $2 i32.const 1 i32.add @@ -22444,16 +22757,31 @@ br $for-loop|0 end end - ) - (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) local.get $1 - i32.load offset=8 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4736 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 + i32.const 2 + i32.add local.get $0 i32.load offset=8 - i32.const 1 - i32.shr_u i32.gt_s if i32.const 1376 @@ -22465,47 +22793,69 @@ end local.get $0 i32.load offset=4 - local.set $0 - local.get $1 + i32.const 2 + i32.add + local.set $4 + local.get $2 i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - local.set $1 + local.set $5 + local.get $2 + i32.load offset=12 + local.set $6 loop $for-loop|0 - local.get $2 local.get $1 + local.get $6 i32.lt_s if - local.get $0 - local.get $2 - i32.const 1 + local.get $1 + local.get $4 + i32.add + local.get $5 + local.get $1 + i32.const 3 i32.shl i32.add - local.get $2 + f64.load + local.tee $3 local.get $3 - i32.add - i32.load8_u - i32.store16 - local.get $2 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $3 + i32.trunc_f64_s + else + i32.const 0 + end + i32.store8 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|0 end end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4736 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + (local $2 i32) local.get $1 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $2 + call $~lib/rt/pure/__retain + local.tee $1 i32.load offset=8 - i32.const 1 - i32.shr_u - i32.const 4 - i32.add local.get $0 i32.load offset=8 - i32.const 1 - i32.shr_u i32.gt_s if i32.const 1376 @@ -22517,26 +22867,40 @@ end local.get $0 i32.load offset=4 - i32.const 8 - i32.add local.get $1 i32.load offset=4 local.get $1 i32.load offset=8 call $~lib/memory/memory.copy + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - i32.const 4812 - i32.load - i32.const 7 - i32.add + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $3 local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.tee $1 i32.load offset=8 i32.const 1 i32.shr_u + i32.const 4 + i32.add + local.get $0 + i32.load offset=8 i32.gt_s if i32.const 1376 @@ -22548,39 +22912,85 @@ end local.get $0 i32.load offset=4 - i32.const 14 + i32.const 4 i32.add - local.set $0 - i32.const 4804 - i32.load - local.set $2 - i32.const 4812 - i32.load - local.set $3 + local.set $4 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $6 loop $for-loop|0 - local.get $1 - local.get $3 + local.get $2 + local.get $6 i32.lt_s if - local.get $0 - local.get $1 + local.get $2 + local.get $4 + i32.add + local.get $5 + local.get $2 i32.const 1 i32.shl i32.add - local.get $1 + i32.load16_s + i32.store8 local.get $2 - i32.add - i32.load8_s - i32.store16 - local.get $1 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4800 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=12 + i32.const 7 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 7 + i32.add + local.get $1 + i32.load offset=4 + local.get $1 + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4800 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> (local $0 i32) (local $1 i32) (local $2 i32) @@ -22589,277 +22999,167 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 f32) - (local $9 f64) - (local $10 i32) - (local $11 i32) - (local $12 i32) + (local $8 i32) i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $2 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $1 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $3 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set i32.const 10 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - local.get $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $5 + call $~lib/rt/pure/__retain + local.tee $0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + local.get $0 i32.const 10 - i32.const 1 - i32.const 19 - i32.const 5472 + i32.const 0 + i32.const 14 + i32.const 4832 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $10 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - block $folding-inner0 - i32.const 4668 - i32.load - i32.const 3 - i32.add - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 6 - i32.add - local.set $5 - i32.const 4660 - i32.load - local.set $6 - i32.const 4668 - i32.load - local.set $7 - loop $for-loop|0 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $5 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $8 - local.get $8 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $8 - i32.trunc_f32_s - else - i32.const 0 - end - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $1 - i32.const 10 - i32.const 1 - i32.const 19 - i32.const 5568 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $1 - local.get $3 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> - local.get $1 - i32.const 10 - i32.const 1 - i32.const 19 - i32.const 5616 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - i32.const 0 - local.set $0 - i32.const 4748 - i32.load - i32.const 2 - i32.add - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 4 - i32.add - local.set $7 - i32.const 4740 - i32.load - local.set $11 - i32.const 4748 - i32.load - local.set $12 - loop $for-loop|00 - local.get $0 - local.get $12 - i32.lt_s - if - local.get $7 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $11 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $9 - local.get $9 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $9 - i32.trunc_f64_s - else - i32.const 0 - end - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - end - end - local.get $1 - i32.const 10 - i32.const 1 - i32.const 19 - i32.const 5664 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - local.get $2 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - local.get $1 - local.get $4 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> - local.get $1 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - local.get $1 - i32.const 10 - i32.const 1 - i32.const 19 - i32.const 5712 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - return - end - i32.const 1376 - i32.const 1440 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 0 + i32.const 14 + i32.const 4912 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $0 + local.get $2 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + local.get $0 + i32.const 10 + i32.const 0 + i32.const 14 + i32.const 4944 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 0 + i32.const 14 + i32.const 4976 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $4 + call $~lib/rt/pure/__release + local.get $0 + local.get $1 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + local.get $0 + local.get $3 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + local.get $0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 0 + i32.const 14 + i32.const 5008 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $4 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Uint16Array#__uget (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + ) + (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 1 - i32.shl i32.add - i32.load16_u + i32.load8_u ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> (param $0 i32) (param $1 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) local.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 offset=8 - i32.const 1 - i32.shr_u local.tee $3 local.get $1 i32.load offset=12 @@ -22879,15 +23179,15 @@ if local.get $0 local.get $2 - call $~lib/typedarray/Uint16Array#__uget + call $~lib/typedarray/Uint8Array#__uget local.tee $4 local.get $1 local.get $2 - call $~lib/typedarray/Uint16Array#__uget + call $~lib/array/Array#__uget local.tee $5 i32.ne if - i32.const 5808 + i32.const 5072 i32.const 3 local.get $2 f64.convert_i32_s @@ -22912,276 +23212,326 @@ br $for-loop|0 end end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> - (local $0 i32) + (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 f32) - (local $9 f64) - (local $10 i32) - (local $11 i32) - (local $12 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4656 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $3 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 3 + i32.add + local.set $4 + local.get $2 + i32.load offset=4 + local.set $5 + local.get $2 + i32.load offset=12 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $1 + local.get $4 + i32.add + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $3 + i32.trunc_f32_u + else + i32.const 0 + end + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4656 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4736 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 + i32.const 2 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.add + local.set $4 + local.get $2 + i32.load offset=4 + local.set $5 + local.get $2 + i32.load offset=12 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $1 + local.get $4 + i32.add + local.get $5 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $3 + i32.trunc_f64_u + else + i32.const 0 + end + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4736 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $1 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $3 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set i32.const 10 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + call $~lib/rt/pure/__retain + local.tee $0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 0 + i32.const 18 + i32.const 5040 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $0 + call $~lib/typedarray/Uint8Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 0 + i32.const 18 + i32.const 5120 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $0 + local.get $2 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + local.get $0 + i32.const 10 + i32.const 0 + i32.const 18 + i32.const 5152 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $0 + call $~lib/typedarray/Uint8Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 0 + i32.const 18 + i32.const 5184 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $4 + call $~lib/rt/pure/__release + local.get $0 local.get $1 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + local.get $0 + local.get $3 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + local.get $0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + local.get $0 i32.const 10 - i32.const 1 - i32.const 20 - i32.const 5760 + i32.const 0 + i32.const 18 + i32.const 5216 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $10 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - block $folding-inner0 - i32.const 4668 - i32.load - i32.const 3 - i32.add - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 6 - i32.add - local.set $5 - i32.const 4660 - i32.load - local.set $6 - i32.const 4668 - i32.load - local.set $7 - loop $for-loop|0 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $5 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $8 - local.get $8 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $8 - i32.trunc_f32_u - else - i32.const 0 - end - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $1 - i32.const 10 - i32.const 1 - i32.const 20 - i32.const 5856 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $1 - local.get $3 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> - local.get $1 - i32.const 10 - i32.const 1 - i32.const 20 - i32.const 5904 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - i32.const 0 - local.set $0 - i32.const 4748 - i32.load - i32.const 2 - i32.add - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 4 - i32.add - local.set $7 - i32.const 4740 - i32.load - local.set $11 - i32.const 4748 - i32.load - local.set $12 - loop $for-loop|00 - local.get $0 - local.get $12 - i32.lt_s - if - local.get $7 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $11 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $9 - local.get $9 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $9 - i32.trunc_f64_u - else - i32.const 0 - end - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - end - end - local.get $1 - i32.const 10 - i32.const 1 - i32.const 20 - i32.const 5952 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - local.get $2 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - local.get $1 - local.get $4 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> - local.get $1 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - local.get $1 - i32.const 10 - i32.const 1 - i32.const 20 - i32.const 6000 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - return - end - i32.const 1376 - i32.const 1440 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable + local.tee $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $4 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) - i32.const 4604 - i32.load + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4592 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 local.get $0 i32.load offset=8 - i32.const 2 - i32.shr_u i32.gt_s if i32.const 1376 @@ -23193,21 +23543,68 @@ end local.get $0 i32.load offset=4 - i32.const 4596 - i32.load - i32.const 4600 - i32.load - call $~lib/memory/memory.copy + local.set $4 + local.get $2 + i32.load offset=4 + local.set $5 + local.get $2 + i32.load offset=12 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $1 + local.get $4 + i32.add + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $3 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + local.get $3 + i32.const 255 + local.get $3 + i32.sub + i32.const 31 + i32.shr_s + i32.or + i32.and + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4592 + call $~lib/rt/pure/__release ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (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 i32.load offset=8 - i32.const 2 - i32.shr_u local.tee $3 local.get $1 i32.load offset=12 @@ -23227,22 +23624,22 @@ if local.get $0 local.get $2 - call $~lib/array/Array#__uget + call $~lib/typedarray/Uint8Array#__uget local.tee $4 local.get $1 local.get $2 - call $~lib/array/Array#__uget + call $~lib/array/Array#__uget local.tee $5 i32.ne if - i32.const 6112 + i32.const 5280 i32.const 3 local.get $2 f64.convert_i32_s local.get $4 - f64.convert_i32_s + f64.convert_i32_u local.get $5 - f64.convert_i32_s + f64.convert_i32_u f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -23260,20 +23657,29 @@ br $for-loop|0 end end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - local.get $1 - i32.load offset=8 + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4656 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 i32.const 3 - i32.shr_u - i32.const 6 i32.add local.get $0 i32.load offset=8 - i32.const 2 - i32.shr_u i32.gt_s if i32.const 1376 @@ -23285,105 +23691,93 @@ end local.get $0 i32.load offset=4 - i32.const 24 + i32.const 3 i32.add - local.set $0 - local.get $1 + local.set $4 + local.get $2 i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $1 + local.set $5 + local.get $2 + i32.load offset=12 + local.set $6 loop $for-loop|0 - local.get $2 local.get $1 + local.get $6 i32.lt_s if - local.get $0 - local.get $2 + local.get $1 + local.get $4 + i32.add + local.get $5 + local.get $1 i32.const 2 i32.shl i32.add + f32.load + local.tee $3 local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store32 - local.get $2 + f32.sub + f32.const 0 + f32.eq + if (result i32) + f32.const 0 + f32.const 255 + local.get $3 + f32.min + f32.max + i32.trunc_f32_u + else + i32.const 0 + end + i32.store8 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|0 end end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4656 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) local.get $1 - i32.load offset=8 + call $~lib/rt/pure/__retain + local.set $4 local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s + call $~lib/rt/pure/__retain + local.set $1 + local.get $4 + call $~lib/rt/pure/__retain + local.set $0 + local.get $2 + i32.const 0 + i32.lt_s if i32.const 1376 i32.const 1440 - i32.const 1775 - i32.const 47 + i32.const 1774 + i32.const 19 call $~lib/builtins/abort unreachable end + local.get $2 local.get $0 - i32.load offset=4 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - local.set $1 - loop $for-loop|0 - local.get $2 - local.get $1 - i32.lt_s - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $2 - local.get $3 - i32.add - i32.load8_u - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - ) - (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - local.get $1 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u - i32.const 4 i32.add - local.get $0 + local.get $1 i32.load offset=8 - i32.const 2 - i32.shr_u i32.gt_s if i32.const 1376 @@ -23393,56 +23787,83 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 + local.get $1 i32.load offset=4 - i32.const 16 i32.add - local.set $0 - local.get $1 + local.set $2 + local.get $0 i32.load offset=4 - local.set $3 - local.get $1 + local.set $6 + local.get $0 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u - local.set $1 + local.set $7 loop $for-loop|0 - local.get $2 - local.get $1 + local.get $3 + local.get $7 i32.lt_s if - local.get $0 local.get $2 - i32.const 2 - i32.shl + local.get $3 i32.add + local.get $6 local.get $3 - local.get $2 - i32.const 1 + i32.const 3 i32.shl i32.add - i32.load16_s - i32.store - local.get $2 + i64.load + local.tee $5 + i32.wrap_i64 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i64.extend_i32_s + local.get $5 + i32.const 255 + local.get $5 + i32.wrap_i64 + i32.sub + i32.const 31 + i32.shr_s + i64.extend_i32_s + i64.or + i64.and + i64.store8 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 4812 - i32.load - i32.const 7 + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4736 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 + i32.const 2 i32.add local.get $0 i32.load offset=8 - i32.const 2 - i32.shr_u i32.gt_s if i32.const 1376 @@ -23454,30 +23875,45 @@ end local.get $0 i32.load offset=4 - i32.const 28 + i32.const 2 i32.add - local.set $0 - i32.const 4804 - i32.load - local.set $2 - i32.const 4812 - i32.load - local.set $3 + local.set $4 + local.get $2 + i32.load offset=4 + local.set $5 + local.get $2 + i32.load offset=12 + local.set $6 loop $for-loop|0 local.get $1 - local.get $3 + local.get $6 i32.lt_s if - local.get $0 local.get $1 - i32.const 2 - i32.shl + local.get $4 i32.add + local.get $5 local.get $1 - local.get $2 + i32.const 3 + i32.shl i32.add - i32.load8_s - i32.store + f64.load + local.tee $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + if (result i32) + f64.const 0 + f64.const 255 + local.get $3 + f64.min + f64.max + i32.trunc_f64_u + else + i32.const 0 + end + i32.store8 local.get $1 i32.const 1 i32.add @@ -23485,31 +23921,211 @@ br $for-loop|0 end end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4736 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 f32) - (local $10 f64) - (local $11 i32) - (local $12 i32) - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.get $1 + call $~lib/rt/pure/__retain + local.set $4 + local.get $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $4 + call $~lib/rt/pure/__retain + local.set $0 + local.get $2 i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set + i32.lt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1774 + i32.const 19 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.add + local.get $1 + i32.load offset=8 + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + i32.load offset=4 + i32.add + local.set $5 + local.get $0 + i32.load offset=4 + local.set $6 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $7 + loop $for-loop|0 + local.get $3 + local.get $7 + i32.lt_s + if + local.get $3 + local.get $5 + i32.add + local.get $6 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.tee $2 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + local.get $2 + i32.const 255 + local.get $2 + i32.sub + i32.const 31 + i32.shr_s + i32.or + i32.and + i32.store8 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4800 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 + i32.const 7 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 7 + i32.add + local.set $4 + local.get $2 + i32.load offset=4 + local.set $5 + local.get $2 + i32.load offset=12 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $1 + local.get $4 + i32.add + local.get $1 + local.get $5 + i32.add + i32.load8_s + local.tee $3 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + local.get $3 + i32.const 255 + local.get $3 + i32.sub + i32.const 31 + i32.shr_s + i32.or + i32.and + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4800 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set local.get $3 i32.const 2 i64.const 9 @@ -23547,214 +24163,214 @@ i32.const 1002 call $~lib/typedarray/Int16Array#__set i32.const 10 - call $~lib/typedarray/Int32Array#constructor + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $7 + call $~lib/rt/pure/__retain local.tee $0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> + call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> local.get $0 i32.const 10 - i32.const 2 - i32.const 15 - i32.const 6048 + i32.const 0 + i32.const 18 + i32.const 5248 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $11 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - block $folding-inner0 - i32.const 4668 - i32.load - i32.const 3 - i32.add - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - i32.const 12 - i32.add - local.set $5 - i32.const 4660 - i32.load - local.set $6 - i32.const 4668 - i32.load - local.set $7 - loop $for-loop|0 - local.get $1 - local.get $7 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 2 - i32.shl - local.tee $8 - i32.add - local.get $6 - local.get $8 - i32.add - f32.load - local.tee $9 - local.get $9 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $9 - i32.trunc_f32_s - else - i32.const 0 - end - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - local.get $0 - i32.const 10 - i32.const 2 - i32.const 15 - i32.const 6160 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $0 - local.get $3 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> - local.get $0 - i32.const 10 - i32.const 2 - i32.const 15 - i32.const 6224 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - i32.const 0 - local.set $1 - i32.const 4748 - i32.load - i32.const 2 - i32.add - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - local.set $7 - i32.const 4740 - i32.load - local.set $8 - i32.const 4748 - i32.load - local.set $12 - loop $for-loop|00 - local.get $1 - local.get $12 - i32.lt_s - if - local.get $7 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $8 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $10 - local.get $10 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $10 - i32.trunc_f64_s - else - i32.const 0 - end - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end - end - local.get $0 - i32.const 10 - i32.const 2 - i32.const 15 - i32.const 6288 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $1 - call $~lib/rt/pure/__release - local.get $0 - local.get $2 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> - local.get $0 - local.get $4 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> - local.get $0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - local.get $0 - i32.const 10 - i32.const 2 - i32.const 15 - i32.const 6352 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 0 + i32.const 18 + i32.const 5344 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $0 + local.get $3 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + local.get $0 + i32.const 10 + i32.const 0 + i32.const 18 + i32.const 5376 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $10 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 0 + i32.const 18 + i32.const 5408 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__retain + local.set $6 + local.get $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $6 + call $~lib/rt/pure/__retain + local.tee $5 + i32.load offset=8 + local.get $1 + i32.load offset=8 + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=4 + local.get $5 + i32.load offset=4 + local.get $5 + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $5 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $0 + local.get $4 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 0 + i32.const 18 + i32.const 5440 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4592 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $3 + local.get $2 + i32.load offset=4 + local.set $4 + local.get $2 + i32.load offset=12 + local.set $5 + loop $for-loop|0 local.get $1 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $11 - call $~lib/rt/pure/__release local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - return + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end end - i32.const 1376 - i32.const 1440 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4592 + call $~lib/rt/pure/__release ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int16Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) local.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 offset=8 - i32.const 2 + i32.const 1 i32.shr_u local.tee $3 local.get $1 @@ -23775,22 +24391,22 @@ if local.get $0 local.get $2 - call $~lib/array/Array#__uget + call $~lib/typedarray/Int16Array#__uget local.tee $4 local.get $1 local.get $2 - call $~lib/array/Array#__uget + call $~lib/typedarray/Int16Array#__uget local.tee $5 i32.ne if - i32.const 6480 + i32.const 5520 i32.const 3 local.get $2 f64.convert_i32_s local.get $4 - f64.convert_i32_u + f64.convert_i32_s local.get $5 - f64.convert_i32_u + f64.convert_i32_s f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -23808,277 +24424,30 @@ br $for-loop|0 end end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> - (local $0 i32) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f32) - (local $10 f64) - (local $11 i32) - (local $12 i32) - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $4 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $4 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - i32.const 10 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> local.get $0 - i32.const 10 - i32.const 2 - i32.const 21 - i32.const 6416 - call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $11 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - block $folding-inner0 - i32.const 4668 - i32.load - i32.const 3 - i32.add - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - i32.const 12 - i32.add - local.set $5 - i32.const 4660 - i32.load - local.set $6 - i32.const 4668 - i32.load - local.set $7 - loop $for-loop|0 - local.get $1 - local.get $7 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 2 - i32.shl - local.tee $8 - i32.add - local.get $6 - local.get $8 - i32.add - f32.load - local.tee $9 - local.get $9 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $9 - i32.trunc_f32_u - else - i32.const 0 - end - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - local.get $0 - i32.const 10 - i32.const 2 - i32.const 21 - i32.const 6528 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - local.get $0 - local.get $3 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> - local.get $0 - i32.const 10 - i32.const 2 - i32.const 21 - i32.const 6592 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - i32.const 0 - local.set $1 - i32.const 4748 - i32.load - i32.const 2 - i32.add - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - local.set $7 - i32.const 4740 - i32.load - local.set $8 - i32.const 4748 - i32.load - local.set $12 - loop $for-loop|00 - local.get $1 - local.get $12 - i32.lt_s - if - local.get $7 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $8 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $10 - local.get $10 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $10 - i32.trunc_f64_u - else - i32.const 0 - end - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end - end - local.get $0 - i32.const 10 - i32.const 2 - i32.const 21 - i32.const 6656 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - local.get $1 - call $~lib/rt/pure/__release - local.get $0 - local.get $2 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> - local.get $0 - local.get $4 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> - local.get $0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - local.get $0 - i32.const 10 - i32.const 2 - i32.const 21 - i32.const 6720 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $11 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - return - end - i32.const 1376 - i32.const 1440 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 4604 - i32.load + local.set $0 + i32.const 4656 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 + i32.const 3 + i32.add local.get $0 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u i32.gt_s if @@ -24091,30 +24460,43 @@ end local.get $0 i32.load offset=4 - local.set $0 - i32.const 4596 - i32.load - local.set $2 - i32.const 4604 - i32.load - local.set $3 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s + i32.const 6 + i32.add + local.set $4 + local.get $2 + i32.load offset=4 + local.set $5 + local.get $2 + i32.load offset=12 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $6 + i32.lt_s if - local.get $0 + local.get $4 local.get $1 - i32.const 3 + i32.const 1 i32.shl i32.add - local.get $2 + local.get $5 local.get $1 i32.const 2 i32.shl i32.add - i64.load32_s - i64.store + f32.load + local.tee $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $3 + i32.trunc_f32_s + else + i32.const 0 + end + i32.store16 local.get $1 i32.const 1 i32.add @@ -24122,70 +24504,76 @@ br $for-loop|0 end end - ) - (func $~lib/typedarray/Int64Array#__uget (param $0 i32) (param $1 i32) (result i64) + local.get $2 + call $~lib/rt/pure/__release local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load + call $~lib/rt/pure/__release + i32.const 4656 + call $~lib/rt/pure/__release ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $3 local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 - local.get $1 - i32.load offset=12 - i32.ne + i32.const 6 + i32.add + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1312 - i32.const 712 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 call $~lib/builtins/abort unreachable end + local.get $0 + i32.load offset=4 + i32.const 12 + i32.add + local.set $4 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $6 loop $for-loop|0 local.get $2 - local.get $3 + local.get $6 i32.lt_s if - local.get $0 + local.get $4 local.get $2 - call $~lib/typedarray/Int64Array#__uget - local.tee $4 - local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 local.get $2 - call $~lib/typedarray/Int64Array#__uget - local.tee $5 - i64.ne - if - i32.const 6880 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.convert_i64_s - local.get $5 - f64.convert_i64_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1312 - i32.const 718 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.const 3 + i32.shl + i32.add + i64.load + i64.store16 local.get $2 i32.const 1 i32.add @@ -24193,17 +24581,32 @@ br $for-loop|0 end end - ) - (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 6 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4736 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 + i32.const 2 i32.add local.get $0 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u i32.gt_s if @@ -24216,22 +24619,76 @@ end local.get $0 i32.load offset=4 - i32.const 48 + i32.const 4 i32.add - local.get $1 + local.set $4 + local.get $2 i32.load offset=4 - local.get $1 - i32.load offset=8 - call $~lib/memory/memory.copy + local.set $5 + local.get $2 + i32.load offset=12 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $3 + i32.trunc_f64_s + else + i32.const 0 + end + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4736 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $1 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.tee $1 i32.load offset=8 local.get $0 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u i32.gt_s if @@ -24244,28 +24701,28 @@ end local.get $0 i32.load offset=4 - local.set $0 + local.set $4 local.get $1 i32.load offset=4 - local.set $3 + local.set $5 local.get $1 i32.load offset=8 - local.set $1 + local.set $6 loop $for-loop|0 local.get $2 - local.get $1 + local.get $6 i32.lt_s if - local.get $0 + local.get $4 local.get $2 - i32.const 3 + i32.const 1 i32.shl i32.add local.get $2 - local.get $3 + local.get $5 i32.add - i64.load8_u - i64.store + i32.load8_u + i32.store16 local.get $2 i32.const 1 i32.add @@ -24273,11 +24730,24 @@ br $for-loop|0 end end + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) local.get $1 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $2 + call $~lib/rt/pure/__retain + local.tee $1 i32.load offset=8 i32.const 1 i32.shr_u @@ -24285,7 +24755,7 @@ i32.add local.get $0 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u i32.gt_s if @@ -24298,53 +24768,38 @@ end local.get $0 i32.load offset=4 - i32.const 32 + i32.const 8 i32.add - local.set $0 local.get $1 i32.load offset=4 - local.set $3 local.get $1 i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $1 - loop $for-loop|0 - local.get $2 - local.get $1 - i32.lt_s - if - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i64.load16_s - i64.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + call $~lib/memory/memory.copy + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release ) - (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - i32.const 4812 - i32.load + (local $4 i32) + (local $5 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4800 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 i32.const 7 i32.add local.get $0 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u i32.gt_s if @@ -24357,30 +24812,30 @@ end local.get $0 i32.load offset=4 - i32.const 56 + i32.const 14 i32.add - local.set $0 - i32.const 4804 - i32.load - local.set $2 - i32.const 4812 - i32.load local.set $3 + local.get $2 + i32.load offset=4 + local.set $4 + local.get $2 + i32.load offset=12 + local.set $5 loop $for-loop|0 local.get $1 - local.get $3 + local.get $5 i32.lt_s if - local.get $0 + local.get $3 local.get $1 - i32.const 3 + i32.const 1 i32.shl i32.add local.get $1 - local.get $2 + local.get $4 i32.add - i64.load8_s - i64.store + i32.load8_s + i32.store16 local.get $1 i32.const 1 i32.add @@ -24388,8 +24843,14 @@ br $for-loop|0 end end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4800 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> (local $0 i32) (local $1 i32) (local $2 i32) @@ -24398,303 +24859,199 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 f32) - (local $9 f64) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) + (local $8 i32) i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $2 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $1 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $3 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set i32.const 10 - call $~lib/typedarray/Int64Array#constructor + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + call $~lib/rt/pure/__retain local.tee $0 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> + call $~lib/typedarray/Int16Array#set<~lib/array/Array> local.get $0 i32.const 10 - i32.const 3 - i32.const 22 - i32.const 6784 + i32.const 1 + i32.const 19 + i32.const 5472 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $10 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - block $folding-inner0 - i32.const 4668 - i32.load - i32.const 3 - i32.add - local.get $0 - i32.load offset=8 + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 1 + i32.const 19 + i32.const 5568 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $0 + local.get $2 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> + local.get $0 + i32.const 10 + i32.const 1 + i32.const 19 + i32.const 5616 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 1 + i32.const 19 + i32.const 5664 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $4 + call $~lib/rt/pure/__release + local.get $0 + local.get $1 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> + local.get $0 + local.get $3 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> + local.get $0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 1 + i32.const 19 + i32.const 5712 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $4 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint16Array#__uget (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.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 offset=8 + i32.const 1 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 712 i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - i32.const 24 - i32.add - local.set $5 - i32.const 4660 - i32.load - local.set $6 - i32.const 4668 - i32.load - local.set $7 - loop $for-loop|0 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/typedarray/Uint16Array#__uget + local.tee $4 local.get $1 - local.get $7 - i32.lt_s + local.get $2 + call $~lib/typedarray/Uint16Array#__uget + local.tee $5 + i32.ne if - local.get $5 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $6 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $8 - local.get $8 - f32.sub - f32.const 0 - f32.eq - if (result i64) - local.get $8 - i64.trunc_f32_s - else - i64.const 0 - end - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - local.get $0 - i32.const 10 - i32.const 3 - i32.const 22 - i32.const 6928 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - local.get $0 - local.get $3 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> - local.get $0 - i32.const 10 - i32.const 3 - i32.const 22 - i32.const 7024 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - i32.const 0 - local.set $1 - i32.const 4748 - i32.load - i32.const 2 - i32.add - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - i32.const 16 - i32.add - local.set $7 - i32.const 4740 - i32.load - local.set $11 - i32.const 4748 - i32.load - local.set $12 - loop $for-loop|00 - local.get $1 - local.get $12 - i32.lt_s - if - local.get $7 - local.get $1 - i32.const 3 - i32.shl - local.tee $13 - i32.add - local.get $11 - local.get $13 - i32.add - f64.load - local.tee $9 - local.get $9 - f64.sub - f64.const 0 - f64.eq - if (result i64) - local.get $9 - i64.trunc_f64_s - else - i64.const 0 - end - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end - end - local.get $0 - i32.const 10 - i32.const 3 - i32.const 22 - i32.const 7120 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - local.get $1 - call $~lib/rt/pure/__release - local.get $0 - local.get $2 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> - local.get $0 - local.get $4 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> - local.get $0 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - local.get $0 - i32.const 10 - i32.const 3 - i32.const 22 - i32.const 7216 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - return - end - i32.const 1376 - i32.const 1440 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i64) - (local $5 i64) - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $3 - local.get $1 - i32.load offset=12 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 712 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - call $~lib/typedarray/Int64Array#__uget - local.tee $4 - local.get $1 - local.get $2 - call $~lib/typedarray/Int64Array#__uget - local.tee $5 - i64.ne - if - i32.const 7408 + i32.const 5808 i32.const 3 local.get $2 f64.convert_i32_s local.get $4 - f64.convert_i64_u + f64.convert_i32_u local.get $5 - f64.convert_i64_u + f64.convert_i32_u f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -24712,777 +25069,571 @@ br $for-loop|0 end end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> - (local $0 i32) + (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 f32) - (local $9 f64) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4656 + call $~lib/rt/pure/__retain local.tee $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set + i32.load offset=12 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $4 + i32.add + local.get $0 + i32.load offset=8 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $4 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - i32.const 10 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - local.get $0 - i32.const 10 - i32.const 3 - i32.const 23 - i32.const 7312 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $10 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - block $folding-inner0 - i32.const 4668 - i32.load - i32.const 3 - i32.add - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - i32.const 24 - i32.add - local.set $5 - i32.const 4660 - i32.load - local.set $6 - i32.const 4668 - i32.load - local.set $7 - loop $for-loop|0 - local.get $1 - local.get $7 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $6 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $8 - local.get $8 - f32.sub - f32.const 0 - f32.eq - if (result i64) - local.get $8 - i64.trunc_f32_u - else - i64.const 0 - end - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - local.get $0 - i32.const 10 - i32.const 3 - i32.const 23 - i32.const 7456 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $0 - local.get $3 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> - local.get $0 - i32.const 10 - i32.const 3 - i32.const 23 - i32.const 7552 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - i32.const 0 - local.set $1 - i32.const 4748 - i32.load - i32.const 2 - i32.add - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - i32.const 16 - i32.add - local.set $7 - i32.const 4740 - i32.load - local.set $11 - i32.const 4748 - i32.load - local.set $12 - loop $for-loop|00 - local.get $1 - local.get $12 - i32.lt_s - if - local.get $7 - local.get $1 - i32.const 3 - i32.shl - local.tee $13 - i32.add - local.get $11 - local.get $13 - i32.add - f64.load - local.tee $9 - local.get $9 - f64.sub - f64.const 0 - f64.eq - if (result i64) - local.get $9 - i64.trunc_f64_u - else - i64.const 0 - end - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end - end - local.get $0 - i32.const 10 - i32.const 3 - i32.const 23 - i32.const 7648 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $1 - call $~lib/rt/pure/__release - local.get $0 - local.get $2 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> - local.get $0 - local.get $4 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> - local.get $0 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - local.get $0 - i32.const 10 - i32.const 3 - i32.const 23 - i32.const 7744 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - return - end - i32.const 1376 - i32.const 1440 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Float32Array#__uget (param $0 i32) (param $1 i32) (result f32) + i32.shr_u + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl + i32.const 6 i32.add - f32.load - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 f32) - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $3 - local.get $1 + local.set $4 + local.get $2 + i32.load offset=4 + local.set $5 + local.get $2 i32.load offset=12 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 712 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.set $6 loop $for-loop|0 - local.get $2 - local.get $3 + local.get $1 + local.get $6 i32.lt_s if - local.get $0 - local.get $2 - call $~lib/typedarray/Float32Array#__uget - local.tee $4 + local.get $4 local.get $1 - local.get $2 - call $~lib/typedarray/Float32Array#__uget - local.tee $5 - f32.ne - if - i32.const 7904 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.promote_f32 - local.get $5 - f64.promote_f32 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $3 + i32.trunc_f32_u + else i32.const 0 - i32.const 1312 - i32.const 718 - i32.const 7 - call $~lib/builtins/abort - unreachable end - local.get $2 + i32.store16 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|0 end end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4656 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> - (local $0 i32) + (func $~lib/typedarray/Uint16Array#set<~lib/array/Array> (param $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $5 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $5 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4736 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 i32.const 2 - i64.const 9 + i32.add + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 4 + i32.add + local.set $4 + local.get $2 + i32.load offset=4 + local.set $5 + local.get $2 + i32.load offset=12 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $3 + i32.trunc_f64_u + else + i32.const 0 + end + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4736 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 9 call $~lib/typedarray/Int64Array#__set i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $1 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $1 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $1 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $1 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $6 + local.tee $3 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $6 + local.get $3 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $6 + local.get $3 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set i32.const 10 - call $~lib/typedarray/Float32Array#constructor + call $~lib/typedarray/Uint16Array#constructor + local.tee $5 + call $~lib/rt/pure/__retain + local.tee $0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 1 + i32.const 20 + i32.const 5760 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $0 + call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 1 + i32.const 20 + i32.const 5856 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $0 + local.get $2 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> + local.get $0 + i32.const 10 + i32.const 1 + i32.const 20 + i32.const 5904 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $0 + call $~lib/typedarray/Uint16Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 1 + i32.const 20 + i32.const 5952 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $4 + call $~lib/rt/pure/__release + local.get $0 + local.get $1 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> + local.get $0 + local.get $3 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> + local.get $0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 1 + i32.const 20 + i32.const 6000 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $4 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4592 + call $~lib/rt/pure/__retain local.tee $1 - local.set $7 - block $folding-inner0 - i32.const 4604 - i32.load - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $7 - i32.load offset=4 - local.set $7 - i32.const 4596 - i32.load - local.set $10 - i32.const 4604 - i32.load - local.set $8 - loop $for-loop|0 - local.get $0 - local.get $8 - i32.lt_s - if - local.get $7 - local.get $0 - i32.const 2 - i32.shl - local.tee $2 - i32.add - local.get $2 - local.get $10 - i32.add - i32.load - f32.convert_i32_s - f32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $1 - i32.const 10 - i32.const 2 - i32.const 16 - i32.const 7840 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - i32.const 4668 - i32.load - i32.const 3 - i32.add - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 12 - i32.add - i32.const 4660 - i32.load - i32.const 4664 - i32.load - call $~lib/memory/memory.copy - local.get $1 - i32.const 10 - i32.const 2 - i32.const 16 - i32.const 7952 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $10 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - i32.const 0 - local.set $0 - local.get $5 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 6 - i32.add - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 24 - i32.add - local.set $8 - local.get $5 - i32.load offset=4 - local.set $2 - local.get $5 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $4 - loop $for-loop|00 - local.get $0 - local.get $4 - i32.lt_s - if - local.get $8 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $2 - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - f32.convert_i64_s - f32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - end - end - local.get $1 - i32.const 10 - i32.const 2 - i32.const 16 - i32.const 8016 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + i32.load offset=12 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4592 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.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 offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne + if i32.const 0 - local.set $0 - local.get $3 - i32.load offset=8 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $4 + i32.const 1312 + i32.const 712 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|0 + local.get $2 local.get $3 - i32.load offset=8 - local.set $9 - loop $for-loop|01 + i32.lt_s + if local.get $0 - local.get $9 - i32.lt_s + local.get $2 + call $~lib/array/Array#__uget + local.tee $4 + local.get $1 + local.get $2 + call $~lib/array/Array#__uget + local.tee $5 + i32.ne if + i32.const 6112 + i32.const 3 local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $0 + f64.convert_i32_s local.get $4 - i32.add - i32.load8_u - f32.convert_i32_u - f32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|01 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1312 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - i32.const 0 - local.set $0 - local.get $6 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.const 4 - i32.add - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 16 - i32.add - local.set $2 - local.get $6 - i32.load offset=4 - local.set $4 + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4656 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=12 + i32.const 3 + i32.add + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 12 + i32.add + local.set $4 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=12 + local.set $6 + loop $for-loop|0 + local.get $2 local.get $6 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $9 - loop $for-loop|02 - local.get $0 - local.get $9 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - f32.convert_i32_s - f32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|02 - end - end - i32.const 0 - local.set $0 - i32.const 4812 - i32.load - i32.const 7 - i32.add - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 28 - i32.add - local.set $2 - i32.const 4804 - i32.load - local.set $4 - i32.const 4812 - i32.load - local.set $9 - loop $for-loop|03 - local.get $0 - local.get $9 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $0 - local.get $4 - i32.add - i32.load8_s - f32.convert_i32_s - f32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|03 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + local.tee $7 + i32.add + local.get $5 + local.get $7 + i32.add + f32.load + local.tee $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $3 + i32.trunc_f32_s + else + i32.const 0 end + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - local.get $1 - i32.const 10 - i32.const 2 - i32.const 16 - i32.const 8080 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - local.get $0 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - return end - i32.const 1376 - i32.const 1440 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Float64Array#__uget (param $0 i32) (param $1 i32) (result f64) - local.get $0 - i32.load offset=4 local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4656 + call $~lib/rt/pure/__release ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 f64) - (local $5 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $3 local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 - local.get $1 - i32.load offset=12 - i32.ne + i32.const 6 + i32.add + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1312 - i32.const 712 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 call $~lib/builtins/abort unreachable end + local.get $0 + i32.load offset=4 + i32.const 24 + i32.add + local.set $4 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $6 loop $for-loop|0 local.get $2 - local.get $3 + local.get $6 i32.lt_s if - local.get $0 + local.get $4 local.get $2 - call $~lib/typedarray/Float64Array#__uget - local.tee $4 - local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $5 local.get $2 - call $~lib/typedarray/Float64Array#__uget - local.tee $5 - f64.ne - if - i32.const 8240 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - local.get $5 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1312 - i32.const 718 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.const 3 + i32.shl + i32.add + i64.load + i64.store32 local.get $2 i32.const 1 i32.add @@ -25490,6677 +25641,9396 @@ br $for-loop|0 end end + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> - (local $0 i32) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $7 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $7 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4736 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $3 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $3 + i32.add + local.get $0 + i32.load offset=8 i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $3 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $8 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $8 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $8 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - i32.const 10 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - local.set $9 - block $folding-inner0 - i32.const 4604 - i32.load + i32.shr_u + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 8 + i32.add + local.set $4 + local.get $2 + i32.load offset=4 + local.set $5 + local.get $2 + i32.load offset=12 + local.set $6 + loop $for-loop|0 local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $9 - i32.load offset=4 - local.set $9 - i32.const 4596 - i32.load - local.set $10 - i32.const 4604 - i32.load - local.set $4 - loop $for-loop|0 - local.get $0 + local.get $6 + i32.lt_s + if local.get $4 - i32.lt_s - if - local.get $9 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $10 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - f64.convert_i32_s - f64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $5 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $3 + i32.trunc_f64_s + else + i32.const 0 end + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 end - local.get $1 - i32.const 10 - i32.const 3 - i32.const 17 - i32.const 8144 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - i32.const 0 - local.set $0 - i32.const 4668 - i32.load - i32.const 3 - i32.add - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 24 - i32.add - local.set $10 - i32.const 4660 - i32.load - local.set $4 - i32.const 4668 - i32.load - local.set $2 - loop $for-loop|00 - local.get $0 + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4736 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=8 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $4 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + local.set $6 + loop $for-loop|0 + local.get $2 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add local.get $2 - i32.lt_s - if - local.get $10 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $4 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - f64.promote_f32 - f64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - end - end - local.get $1 - i32.const 10 - i32.const 3 - i32.const 17 - i32.const 8288 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $10 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - i32.const 0 - local.set $0 - local.get $7 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 6 - i32.add - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 48 - i32.add - local.set $4 - local.get $7 - i32.load offset=4 - local.set $2 - local.get $7 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $5 - loop $for-loop|01 - local.get $0 local.get $5 - i32.lt_s - if - local.get $4 - local.get $0 - i32.const 3 - i32.shl - local.tee $6 - i32.add - local.get $2 - local.get $6 - i32.add - i64.load - f64.convert_i64_s - f64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|01 - end - end - local.get $1 - i32.const 10 - i32.const 3 - i32.const 17 - i32.const 8384 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $4 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - i32.const 0 - local.set $0 - local.get $3 - i32.load offset=8 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - local.set $2 - local.get $3 - i32.load offset=4 - local.set $5 - local.get $3 - i32.load offset=8 - local.set $6 - loop $for-loop|02 - local.get $0 - local.get $6 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - f64.convert_i32_u - f64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|02 - end - end - i32.const 0 - local.set $0 - local.get $8 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.const 4 - i32.add - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 32 - i32.add - local.set $2 - local.get $8 - i32.load offset=4 - local.set $5 - local.get $8 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $6 - loop $for-loop|03 - local.get $0 - local.get $6 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $5 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - f64.convert_i32_s - f64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|03 - end - end - i32.const 0 - local.set $0 - i32.const 4812 - i32.load - i32.const 7 - i32.add - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.gt_s - br_if $folding-inner0 - local.get $1 - i32.load offset=4 - i32.const 56 - i32.add - local.set $2 - i32.const 4804 - i32.load - local.set $5 - i32.const 4812 - i32.load - local.set $6 - loop $for-loop|04 - local.get $0 - local.get $6 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_s - f64.convert_i32_s - f64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|04 - end + i32.add + i32.load8_u + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - local.get $1 - i32.const 10 - i32.const 3 - i32.const 17 - i32.const 8480 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - local.get $0 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - return end - i32.const 1376 - i32.const 1440 - i32.const 1775 - i32.const 47 - call $~lib/builtins/abort - unreachable + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release ) - (func $start:std/typedarray - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 f32) - (local $17 i32) - (local $18 i32) - (local $19 i32) - (local $20 i64) - (local $21 f64) - (local $22 f32) - (local $23 f64) - (local $24 i32) - (local $25 i32) - (local $26 i32) - (local $27 i32) - (local $28 i32) - (local $29 i32) - (local $30 i32) - i32.const 0 - call $std/typedarray/testInstantiate - i32.const 5 - call $std/typedarray/testInstantiate - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set local.get $1 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=8 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $1 + i32.shr_u + i32.const 4 + i32.add + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - i32.const 3 - i32.ne + i32.gt_s if - i32.const 0 - i32.const 1312 - i32.const 95 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1312 - i32.const 96 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 97 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 call $~lib/builtins/abort unreachable end + local.get $0 + i32.load offset=4 + i32.const 16 + i32.add + local.set $4 local.get $1 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 98 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.load offset=4 + local.set $5 local.get $1 + i32.load offset=8 i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 99 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 100 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shr_u + local.set $6 + loop $for-loop|0 + local.get $2 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $5 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#subarray - local.set $0 - local.get $1 call $~lib/rt/pure/__release local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) + (local $1 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 4800 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 + i32.const 7 + i32.add + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 103 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 4 - i32.ne + i32.gt_s if - i32.const 0 - i32.const 1312 - i32.const 104 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 call $~lib/builtins/abort unreachable end local.get $0 - i32.load offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 105 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.load offset=4 + i32.const 28 + i32.add + local.set $3 + local.get $2 + i32.load offset=4 + local.set $4 + local.get $2 + i32.load offset=12 + local.set $5 + loop $for-loop|0 + local.get $1 + local.get $5 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_s + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end end + local.get $2 + call $~lib/rt/pure/__release local.get $0 + call $~lib/rt/pure/__release + i32.const 4800 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 i32.const 0 - call $~lib/typedarray/Int32Array#__get + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $2 i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 106 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - i32.const 8 - call $~lib/typedarray/Float64Array#constructor + i64.const 9 + call $~lib/typedarray/Int64Array#__set + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor local.tee $1 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set + i32.const 100 + call $~lib/typedarray/Uint8Array#__set local.get $1 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set + i32.const 101 + call $~lib/typedarray/Uint8Array#__set local.get $1 i32.const 2 - f64.const 7 - call $~lib/typedarray/Float64Array#__set + i32.const 102 + call $~lib/typedarray/Uint8Array#__set local.get $1 i32.const 3 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 4 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 5 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 6 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 7 - f64.const 8 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Float64Array#subarray - local.set $0 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + i32.const 10 + call $~lib/typedarray/Int32Array#constructor + local.tee $5 + call $~lib/rt/pure/__retain + local.tee $0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 2 + i32.const 15 + i32.const 6048 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 2 + i32.const 15 + i32.const 6160 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $0 + local.get $2 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> + local.get $0 + i32.const 10 + i32.const 2 + i32.const 15 + i32.const 6224 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 2 + i32.const 15 + i32.const 6288 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $4 + call $~lib/rt/pure/__release + local.get $0 + local.get $1 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> + local.get $0 + local.get $3 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> + local.get $0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 2 + i32.const 15 + i32.const 6352 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + local.get $4 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 122 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 16 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 123 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/rt/pure/__retain + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 local.get $0 i32.load offset=8 - i32.const 32 + i32.const 2 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 i32.ne if i32.const 0 i32.const 1312 - i32.const 124 + i32.const 712 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - global.set $~argumentsLength - block $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 - call $~lib/rt/pure/__retain - local.tee $29 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $30 - i32.const 1 - i32.le_s - br_if $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $29 - i32.load offset=4 - local.set $1 - local.get $30 - i32.const 2 - i32.eq + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s if + local.get $0 + local.get $2 + call $~lib/array/Array#__uget + local.tee $4 local.get $1 - f64.load offset=8 - local.set $23 - local.get $1 - f64.load - local.set $21 - i32.const 2 - global.set $~argumentsLength - local.get $23 - local.get $21 - call $~lib/util/sort/COMPARATOR~anonymous|0 - i32.const 0 - i32.lt_s + local.get $2 + call $~lib/array/Array#__uget + local.tee $5 + i32.ne if - local.get $1 - local.get $21 - f64.store offset=8 - local.get $1 - local.get $23 - f64.store + i32.const 6480 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_u + local.get $5 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1312 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable end - br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $30 - i32.const 256 - i32.lt_s - if - local.get $1 - local.get $30 - call $~lib/util/sort/insertionSort - else - local.get $1 - local.get $30 - call $~lib/util/sort/weakHeapSort + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $29 + local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) local.get $0 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.eq - if (result i32) - local.get $0 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.eq - else - i32.const 0 - end - if (result i32) - local.get $0 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.eq - else - i32.const 0 - end - if (result i32) - local.get $0 - i32.const 3 - call $~lib/typedarray/Float64Array#__get - f64.const 7 - f64.eq - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 126 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4656 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=12 + i32.const 3 + i32.add + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable end local.get $0 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.const 0 - i32.const -32 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set + i32.load offset=4 + i32.const 12 + i32.add + local.set $4 local.get $1 - i32.const 2 - i32.const 256 - call $~lib/typedarray/Uint8ClampedArray#__set + i32.load offset=4 + local.set $5 local.get $1 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - if - i32.const 0 - i32.const 1312 - i32.const 135 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.load offset=12 + local.set $6 + loop $for-loop|0 + local.get $2 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + local.tee $7 + i32.add + local.get $5 + local.get $7 + i32.add + f32.load + local.tee $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $3 + i32.trunc_f32_u + else + i32.const 0 + end + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end local.get $1 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4656 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4736 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 136 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 + i32.add + local.get $0 + i32.load offset=8 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 255 - i32.ne + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1312 - i32.const 137 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 + i32.load offset=4 + i32.const 8 + i32.add + local.set $4 + local.get $2 + i32.load offset=4 + local.set $5 + local.get $2 + i32.load offset=12 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $5 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $3 + i32.trunc_f64_u + else + i32.const 0 + end + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $2 call $~lib/rt/pure/__release - i32.const 5 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 + local.get $0 + call $~lib/rt/pure/__release + i32.const 4736 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 i32.const 1 - call $~lib/typedarray/Int8Array#__set + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set local.get $1 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set + i32.const 101 + call $~lib/typedarray/Uint8Array#__set local.get $1 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set + i32.const 102 + call $~lib/typedarray/Uint8Array#__set local.get $1 i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 1 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set i32.const 3 - call $~lib/typedarray/Int8Array#fill - call $~lib/rt/pure/__release - local.get $1 - i32.const 5 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 i32.const 0 - i32.const 14 - i32.const 1504 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + i32.const 10 + call $~lib/typedarray/Uint32Array#constructor + local.tee $5 + call $~lib/rt/pure/__retain + local.tee $0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 2 + i32.const 21 + i32.const 6416 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $30 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 149 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 0 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int8Array#fill - call $~lib/rt/pure/__release - local.get $1 - i32.const 5 - i32.const 0 - i32.const 14 - i32.const 1584 + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $0 + call $~lib/typedarray/Uint32Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 2 + i32.const 21 + i32.const 6528 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $29 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 152 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/typedarray/Int8Array#fill - call $~lib/rt/pure/__release - local.get $1 - i32.const 5 - i32.const 0 - i32.const 14 - i32.const 1616 + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $0 + local.get $2 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> + local.get $0 + i32.const 10 + i32.const 2 + i32.const 21 + i32.const 6592 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $28 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 155 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $0 + call $~lib/typedarray/Uint32Array#set<~lib/array/Array> + local.get $0 + i32.const 10 i32.const 2 - i32.const -2 - i32.const 2147483647 - call $~lib/typedarray/Int8Array#fill - call $~lib/rt/pure/__release - local.get $1 - i32.const 5 - i32.const 0 - i32.const 14 - i32.const 1648 + i32.const 21 + i32.const 6656 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $27 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 158 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/typedarray/Int8Array#fill + local.tee $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $4 call $~lib/rt/pure/__release + local.get $0 local.get $1 - i32.const 5 - i32.const 0 - i32.const 14 - i32.const 1680 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> + local.get $0 + local.get $3 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> + local.get $0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 2 + i32.const 21 + i32.const 6720 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $26 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 161 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.tee $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + local.get $4 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#subarray - local.tee $0 - i32.const 0 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int8Array#fill call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4592 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 local.get $0 i32.load offset=8 i32.const 3 - i32.ne + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1312 - i32.const 165 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 call $~lib/builtins/abort unreachable end local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 166 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.load offset=4 + local.set $3 + local.get $2 + i32.load offset=4 + local.set $4 + local.get $2 + i32.load offset=12 + local.set $5 + loop $for-loop|0 + local.get $1 + local.get $5 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i64.load32_s + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4592 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#__uget (param $0 i32) (param $1 i32) (result i64) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i64) + local.get $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 offset=8 i32.const 3 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 i32.ne if i32.const 0 i32.const 1312 - i32.const 167 + i32.const 712 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 3 - i32.const 0 - i32.const 14 - i32.const 1712 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $25 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 168 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/typedarray/Int64Array#__uget + local.tee $4 + local.get $1 + local.get $2 + call $~lib/typedarray/Int64Array#__uget + local.tee $5 + i64.ne + if + i32.const 6880 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i64_s + local.get $5 + f64.convert_i64_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1312 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end + local.get $0 + call $~lib/rt/pure/__release local.get $1 - i32.const 5 - i32.const 0 - i32.const 14 - i32.const 1744 - call $~lib/rt/__allocArray + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 call $~lib/rt/pure/__retain - local.tee $24 - call $std/typedarray/isInt8ArrayEqual - i32.eqz + local.set $0 + i32.const 4656 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 + i32.const 3 + i32.add + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1312 - i32.const 169 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $1 - call $~lib/rt/pure/__release - local.get $30 - call $~lib/rt/pure/__release - local.get $29 - call $~lib/rt/pure/__release - local.get $28 - call $~lib/rt/pure/__release - local.get $27 - call $~lib/rt/pure/__release - local.get $26 - call $~lib/rt/pure/__release local.get $0 + i32.load offset=4 + i32.const 24 + i32.add + local.set $4 + local.get $2 + i32.load offset=4 + local.set $5 + local.get $2 + i32.load offset=12 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + if (result i64) + local.get $3 + i64.trunc_f32_s + else + i64.const 0 + end + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $2 call $~lib/rt/pure/__release - local.get $25 + local.get $0 call $~lib/rt/pure/__release - local.get $24 + i32.const 4656 call $~lib/rt/pure/__release - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (local $2 i32) local.get $1 + call $~lib/rt/pure/__retain + local.set $2 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $2 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=8 i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 1 + i32.shr_u + i32.const 6 + i32.add + local.get $0 + i32.load offset=8 i32.const 3 - call $~lib/typedarray/Int32Array#fill - call $~lib/rt/pure/__release - local.get $1 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1776 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $30 - call $std/typedarray/isInt32ArrayEqual - i32.eqz + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1312 - i32.const 181 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 call $~lib/builtins/abort unreachable end + local.get $0 + i32.load offset=4 + i32.const 48 + i32.add local.get $1 - i32.const 0 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#fill - call $~lib/rt/pure/__release + i32.load offset=4 local.get $1 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1824 - call $~lib/rt/__allocArray + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 call $~lib/rt/pure/__retain - local.tee $29 - call $std/typedarray/isInt32ArrayEqual - i32.eqz + local.set $0 + i32.const 4736 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=12 + i32.const 2 + i32.add + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1312 - i32.const 184 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 call $~lib/builtins/abort unreachable end + local.get $0 + i32.load offset=4 + i32.const 16 + i32.add + local.set $4 local.get $1 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/typedarray/Int32Array#fill - call $~lib/rt/pure/__release - local.get $1 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1872 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $28 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 187 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=12 + local.set $6 + loop $for-loop|0 + local.get $2 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + local.tee $7 + i32.add + local.get $5 + local.get $7 + i32.add + f64.load + local.tee $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + if (result i64) + local.get $3 + i64.trunc_f64_s + else + i64.const 0 + end + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end local.get $1 - i32.const 2 - i32.const -2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#fill call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4736 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $1 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1920 - call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $27 - call $std/typedarray/isInt32ArrayEqual - i32.eqz + local.set $3 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=8 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1312 - i32.const 190 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 call $~lib/builtins/abort unreachable end + local.get $0 + i32.load offset=4 + local.set $4 local.get $1 - i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/typedarray/Int32Array#fill + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + local.set $6 + loop $for-loop|0 + local.get $2 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.get $2 + local.get $5 + i32.add + i64.load8_u + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $1 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 1968 - call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $26 - call $std/typedarray/isInt32ArrayEqual - i32.eqz + local.set $3 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 4 + i32.add + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1312 - i32.const 193 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 call $~lib/builtins/abort unreachable end + local.get $0 + i32.load offset=4 + i32.const 32 + i32.add + local.set $4 + local.get $1 + i32.load offset=4 + local.set $5 local.get $1 + i32.load offset=8 i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#subarray - local.tee $0 - i32.const 0 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#fill + i32.shr_u + local.set $6 + loop $for-loop|0 + local.get $2 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.get $5 + local.get $2 + i32.const 1 + i32.shl + i32.add + i64.load16_s + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 call $~lib/rt/pure/__release local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4800 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 + i32.const 7 + i32.add + local.get $0 i32.load offset=8 - i32.const 2 - i32.shr_u i32.const 3 - i32.ne + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1312 - i32.const 197 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 call $~lib/builtins/abort unreachable end local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 198 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 199 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.load offset=4 + i32.const 56 + i32.add + local.set $3 + local.get $2 + i32.load offset=4 + local.set $4 + local.get $2 + i32.load offset=12 + local.set $5 + loop $for-loop|0 + local.get $1 + local.get $5 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $1 + local.get $4 + i32.add + i64.load8_s + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end end + local.get $2 + call $~lib/rt/pure/__release local.get $0 + call $~lib/rt/pure/__release + i32.const 4800 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $2 i32.const 2 - i32.const 15 - i32.const 2016 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $25 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 200 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 9 + call $~lib/typedarray/Int64Array#__set + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set local.get $1 - i32.const 5 i32.const 2 - i32.const 15 - i32.const 2048 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + i32.const 10 + call $~lib/typedarray/Int64Array#constructor + local.tee $5 + call $~lib/rt/pure/__retain + local.tee $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 3 + i32.const 22 + i32.const 6784 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $24 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 201 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 3 + i32.const 22 + i32.const 6928 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $0 + local.get $2 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> + local.get $0 + i32.const 10 + i32.const 3 + i32.const 22 + i32.const 7024 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 3 + i32.const 22 + i32.const 7120 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $4 call $~lib/rt/pure/__release - local.get $30 + local.get $0 + local.get $1 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> + local.get $0 + local.get $3 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> + local.get $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 3 + i32.const 22 + i32.const 7216 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + local.get $4 call $~lib/rt/pure/__release - local.get $29 + local.get $2 call $~lib/rt/pure/__release - local.get $28 + local.get $1 call $~lib/rt/pure/__release - local.get $27 + local.get $3 call $~lib/rt/pure/__release - local.get $26 + local.get $5 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $25 + local.get $6 call $~lib/rt/pure/__release - local.get $24 + local.get $7 call $~lib/rt/pure/__release - i32.const 6 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set + local.get $8 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i64) + 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 offset=8 i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 5 - i32.const 6 - call $~lib/typedarray/Int8Array#__set + i32.shr_u + local.tee $3 local.get $1 - i32.const 1 - i32.const 6 - call $~lib/typedarray/Int8Array#subarray - local.tee $0 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 222 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 5 + i32.load offset=12 i32.ne if i32.const 0 i32.const 1312 - i32.const 223 + i32.const 712 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 224 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/typedarray/Int64Array#__uget + local.tee $4 + local.get $1 + local.get $2 + call $~lib/typedarray/Int64Array#__uget + local.tee $5 + i64.ne + if + i32.const 7408 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i64_u + local.get $5 + f64.convert_i64_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1312 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end local.get $0 - i32.load offset=8 - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 225 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 - i32.const 1 - i32.const 5 - call $~lib/typedarray/Int8Array#subarray - local.tee $30 - i32.const 0 - call $~lib/typedarray/Int8Array#__get + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4656 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 228 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $30 - i32.load offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 229 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $30 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 230 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $30 - i32.load offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 231 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $30 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#subarray - local.tee $29 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 234 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $29 + i32.add + local.get $0 i32.load offset=8 i32.const 3 - i32.ne + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1312 - i32.const 235 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $29 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 236 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load offset=4 + i32.const 24 + i32.add + local.set $4 + local.get $2 + i32.load offset=4 + local.set $5 + local.get $2 + i32.load offset=12 + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + if (result i64) + local.get $3 + i64.trunc_f32_u + else + i64.const 0 + end + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end end - local.get $29 + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4656 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint64Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4736 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=12 + i32.const 2 + i32.add + local.get $0 i32.load offset=8 i32.const 3 - i32.ne + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1312 - i32.const 237 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $1 - call $~lib/rt/pure/__release local.get $0 + i32.load offset=4 + i32.const 16 + i32.add + local.set $4 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=12 + local.set $6 + loop $for-loop|0 + local.get $2 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + local.tee $7 + i32.add + local.get $5 + local.get $7 + i32.add + f64.load + local.tee $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + if (result i64) + local.get $3 + i64.trunc_f64_u + else + i64.const 0 + end + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 call $~lib/rt/pure/__release - local.get $30 - call $~lib/rt/pure/__release - local.get $29 - call $~lib/rt/pure/__release - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 + local.get $0 + call $~lib/rt/pure/__release + i32.const 4736 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 i32.const 1 - call $~lib/typedarray/Int32Array#__set + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set local.get $1 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set + i32.const 101 + call $~lib/typedarray/Uint8Array#__set local.get $1 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set + i32.const 102 + call $~lib/typedarray/Uint8Array#__set local.get $1 i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - local.get $1 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.set $30 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + i32.const 10 + call $~lib/typedarray/Uint64Array#constructor + local.tee $5 + call $~lib/rt/pure/__retain + local.tee $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 3 + i32.const 23 + i32.const 7312 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $0 + call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 3 + i32.const 23 + i32.const 7456 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $0 + local.get $2 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> + local.get $0 + i32.const 10 + i32.const 3 + i32.const 23 + i32.const 7552 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $0 + call $~lib/typedarray/Uint64Array#set<~lib/array/Array> + local.get $0 + i32.const 10 + i32.const 3 + i32.const 23 + i32.const 7648 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $4 + call $~lib/rt/pure/__release + local.get $0 local.get $1 - i32.const 0 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> + local.get $0 + local.get $3 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> + local.get $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $0 + i32.const 10 i32.const 3 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $28 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 2096 + i32.const 23 + i32.const 7744 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $27 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 248 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $30 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.set $0 + local.tee $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + local.get $4 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release local.get $0 - i32.const 1 - i32.const 3 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $26 - i32.const 5 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float32Array#__uget (param $0 i32) (param $1 i32) (result f32) + local.get $0 + i32.load offset=4 + local.get $1 i32.const 2 - i32.const 15 - i32.const 2144 - call $~lib/rt/__allocArray + i32.shl + i32.add + f32.load + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 f32) + local.get $0 call $~lib/rt/pure/__retain - local.tee $25 - call $std/typedarray/isInt32ArrayEqual - i32.eqz + local.set $0 + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + local.get $1 + i32.load offset=12 + i32.ne if i32.const 0 i32.const 1312 - i32.const 250 + i32.const 712 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $30 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.set $29 - local.get $0 - call $~lib/rt/pure/__release - local.get $29 - i32.const 1 - i32.const 2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $24 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 2192 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $19 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 252 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + call $~lib/typedarray/Float32Array#__uget + local.tee $4 + local.get $1 + local.get $2 + call $~lib/typedarray/Float32Array#__uget + local.tee $5 + f32.ne + if + i32.const 7904 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.promote_f32 + local.get $5 + f64.promote_f32 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1312 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end - local.get $30 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.get $29 + local.get $0 call $~lib/rt/pure/__release - local.tee $0 - i32.const 2 - i32.const 2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $29 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 2240 - call $~lib/rt/__allocArray + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 call $~lib/rt/pure/__retain - local.tee $18 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 254 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $30 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice + local.set $3 local.get $0 - call $~lib/rt/pure/__release - local.tee $0 - i32.const 0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=8 i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $17 - i32.const 5 + i32.shr_u + i32.const 6 + i32.add + local.get $0 + i32.load offset=8 i32.const 2 - i32.const 15 - i32.const 2288 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $15 - call $std/typedarray/isInt32ArrayEqual - i32.eqz + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1312 - i32.const 256 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $30 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice local.get $0 - call $~lib/rt/pure/__release - local.tee $0 - i32.const 1 + i32.load offset=4 + i32.const 24 + i32.add + local.set $4 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $14 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 2336 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $13 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 258 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shr_u + local.set $6 + loop $for-loop|0 + local.get $2 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $5 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + f32.convert_i64_s + f32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end - local.get $30 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice + local.get $1 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.tee $0 + local.get $3 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=8 i32.const 1 - i32.const 2 + i32.shr_u i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $12 - i32.const 5 + i32.add + local.get $0 + i32.load offset=8 i32.const 2 - i32.const 15 - i32.const 2384 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $11 - call $std/typedarray/isInt32ArrayEqual - i32.eqz + i32.shr_u + i32.gt_s if - i32.const 0 - i32.const 1312 - i32.const 260 - i32.const 3 + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 call $~lib/builtins/abort unreachable end - local.get $30 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice local.get $0 - call $~lib/rt/pure/__release - local.tee $0 - i32.const 0 - i32.const -2 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $10 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 2432 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 262 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $30 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.get $0 - call $~lib/rt/pure/__release - local.tee $0 - i32.const 0 - i32.const -2 - i32.const -1 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $8 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 2480 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 264 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $30 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.get $0 - call $~lib/rt/pure/__release - local.tee $0 - i32.const -4 - i32.const -3 - i32.const -2 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $6 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 2528 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 266 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $30 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.get $0 - call $~lib/rt/pure/__release - local.tee $0 - i32.const -4 - i32.const -3 - i32.const -1 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $4 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 2576 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $3 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 268 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $30 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.set $1 - local.get $0 - call $~lib/rt/pure/__release + i32.load offset=4 + i32.const 16 + i32.add + local.set $4 local.get $1 - i32.const -4 - i32.const -3 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#copyWithin - local.tee $0 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 2624 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $2 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 270 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $6 + loop $for-loop|0 + local.get $2 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $5 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_s + f32.convert_i32_s + f32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end local.get $1 call $~lib/rt/pure/__release - local.get $30 - call $~lib/rt/pure/__release - local.get $28 - call $~lib/rt/pure/__release - local.get $27 - call $~lib/rt/pure/__release - local.get $26 - call $~lib/rt/pure/__release - local.get $25 - call $~lib/rt/pure/__release - local.get $24 - call $~lib/rt/pure/__release - local.get $19 - call $~lib/rt/pure/__release - local.get $29 - call $~lib/rt/pure/__release - local.get $18 - call $~lib/rt/pure/__release - local.get $17 - call $~lib/rt/pure/__release - local.get $15 - call $~lib/rt/pure/__release - local.get $14 - call $~lib/rt/pure/__release - local.get $13 - call $~lib/rt/pure/__release - local.get $12 - call $~lib/rt/pure/__release - local.get $11 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $9 - 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 $5 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $2 + local.get $3 call $~lib/rt/pure/__release - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $7 i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $7 i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $7 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $1 + i64.const 9 + call $~lib/typedarray/Int64Array#__set i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - local.get $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $5 i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#subarray - local.tee $30 - i32.load offset=8 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $5 i32.const 2 - i32.shr_u + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $5 i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 282 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $30 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 283 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $30 - i32.load offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 284 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set i32.const 3 - call $~lib/typedarray/Int32Array#slice - local.tee $0 + call $~lib/typedarray/Int16Array#constructor + local.tee $8 i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 287 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 288 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 289 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1312 - i32.const 290 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 291 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $30 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $8 i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $8 i32.const 2 - call $~lib/typedarray/Int32Array#slice - local.tee $29 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 294 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $29 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 295 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + i32.const 10 + call $~lib/typedarray/Float32Array#constructor + local.tee $14 + call $~lib/rt/pure/__retain + local.tee $3 + call $~lib/rt/pure/__retain + local.set $1 + block $folding-inner0 + i32.const 4592 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + local.set $9 + local.get $2 + i32.load offset=4 + local.set $10 + local.get $2 + i32.load offset=12 + local.set $11 + loop $for-loop|0 + local.get $0 + local.get $11 + i32.lt_s + if + local.get $9 + local.get $0 + i32.const 2 + i32.shl + local.tee $6 + i32.add + local.get $6 + local.get $10 + i32.add + i32.load + f32.convert_i32_s + f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 4592 + call $~lib/rt/pure/__release + local.get $3 + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 7840 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + local.get $3 + call $~lib/rt/pure/__retain + local.set $0 + i32.const 4656 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=12 i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $29 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if + i32.add + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 12 + i32.add + local.get $1 + i32.load offset=4 + local.get $1 + i32.load offset=8 + call $~lib/memory/memory.copy + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 4656 + call $~lib/rt/pure/__release + local.get $3 + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 7952 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $10 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + local.get $3 + local.get $7 + call $~lib/typedarray/Float32Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 8016 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $11 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> i32.const 0 - i32.const 1312 - i32.const 296 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $29 - i32.load offset=8 - i32.const 4 - i32.ne - if + local.set $0 + local.get $5 + call $~lib/rt/pure/__retain + local.set $4 + local.get $3 + call $~lib/rt/pure/__retain + local.set $1 + local.get $4 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=8 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + local.set $6 + local.get $2 + i32.load offset=4 + local.set $12 + local.get $2 + i32.load offset=8 + local.set $13 + loop $for-loop|00 + local.get $0 + local.get $13 + i32.lt_s + if + local.get $6 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $12 + i32.add + i32.load8_u + f32.convert_i32_u + f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|00 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $3 + local.get $8 + call $~lib/typedarray/Float32Array#set<~lib/typedarray/Int16Array> i32.const 0 - i32.const 1312 - i32.const 297 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.set $1 + i32.const 4800 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 + i32.const 7 + i32.add + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.gt_s + br_if $folding-inner0 + local.get $1 + i32.load offset=4 + i32.const 28 + i32.add + local.set $6 + local.get $2 + i32.load offset=4 + local.set $12 + local.get $2 + i32.load offset=12 + local.set $13 + loop $for-loop|01 + local.get $0 + local.get $13 + i32.lt_s + if + local.get $6 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $12 + i32.add + i32.load8_s + f32.convert_i32_s + f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|01 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 4800 + call $~lib/rt/pure/__release + local.get $3 + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 8080 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + local.get $0 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $14 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + local.get $11 + call $~lib/rt/pure/__release + return end + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/typedarray/Float64Array#__uget (param $0 i32) (param $1 i32) (result f64) + local.get $0 + i32.load offset=4 local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 local.get $1 - i32.const 0 - i32.const 2147483647 - call $~lib/typedarray/Int32Array#slice - local.tee $28 - i32.eq - if - i32.const 0 - i32.const 1312 - i32.const 300 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $28 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $0 i32.load offset=8 - i32.const 2 + i32.const 3 i32.shr_u - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 301 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $28 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 302 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $28 - i32.load offset=8 + local.tee $3 local.get $1 - i32.load offset=8 + i32.load offset=12 i32.ne if i32.const 0 i32.const 1312 - i32.const 303 + i32.const 712 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - call $~lib/rt/pure/__release - local.get $30 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $29 - call $~lib/rt/pure/__release - local.get $28 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $30 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $30 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $30 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - i32.const 0 - local.set $0 - i32.const 0 - local.set $1 - local.get $30 - i32.load offset=4 - local.set $29 - local.get $30 - i32.load offset=8 - local.set $28 loop $for-loop|0 - local.get $0 - local.get $28 + local.get $2 + local.get $3 i32.lt_s if local.get $0 - local.get $29 - i32.add - i32.load8_s - local.set $27 - i32.const 4 - global.set $~argumentsLength + local.get $2 + call $~lib/typedarray/Float64Array#__uget + local.tee $4 local.get $1 - local.get $27 + local.get $2 + call $~lib/typedarray/Float64Array#__uget + local.tee $5 + f64.ne + if + i32.const 8240 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + local.get $5 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1312 + i32.const 718 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 i32.add - local.set $1 - local.get $0 + local.set $2 + br $for-loop|0 + end + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 6 + i32.add + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 48 + i32.add + local.set $4 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $6 + loop $for-loop|0 + local.get $2 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + local.tee $7 + i32.add + local.get $5 + local.get $7 + i32.add + i64.load + f64.convert_i64_s + f64.store + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end - block $folding-inner19 - block $folding-inner18 - block $folding-inner0 - block $folding-inner17 - block $folding-inner16 - block $folding-inner13 - block $folding-inner12 - block $folding-inner11 - block $folding-inner10 - block $folding-inner9 - block $folding-inner8 - block $folding-inner7 - block $folding-inner6 - block $folding-inner5 - block $folding-inner4 - block $folding-inner3 - block $folding-inner2 - local.get $1 - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner2 - local.get $30 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - call $~lib/typedarray/Uint8Array#reduce - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner2 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 4 - call $~lib/typedarray/Uint8Array#reduce - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner2 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $30 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $30 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $30 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - local.set $0 - i32.const 0 - local.set $1 - local.get $30 - i32.load offset=4 - local.set $29 - local.get $30 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $28 - loop $for-loop|00 - local.get $0 - local.get $28 - i32.lt_s - if - local.get $29 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $27 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $27 - i32.add - local.set $1 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - end - end - local.get $1 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner2 - local.get $30 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $30 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $30 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $30 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - i32.const 0 - local.set $0 - i32.const 0 - local.set $1 - local.get $30 - i32.load offset=4 - local.set $29 - local.get $30 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $28 - loop $for-loop|01 - local.get $0 - local.get $28 - i32.lt_s - if - local.get $29 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $27 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $27 - i32.add - local.set $1 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|01 - end - end - local.get $1 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner2 - local.get $30 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 7 - call $~lib/typedarray/Int32Array#reduce - i32.const 6 - i32.ne - br_if $folding-inner2 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 8 - call $~lib/typedarray/Int32Array#reduce - i32.const 6 - i32.ne - br_if $folding-inner2 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 9 - call $~lib/typedarray/Int64Array#reduce - i64.const 6 - i64.ne - br_if $folding-inner2 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 10 - call $~lib/typedarray/Int64Array#reduce - i64.const 6 - i64.ne - br_if $folding-inner2 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $30 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $29 - loop $for-loop|02 - local.get $0 - local.get $29 - i32.lt_s - if - local.get $30 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $16 - i32.const 4 - global.set $~argumentsLength - local.get $22 - local.get $16 - f32.add - local.set $22 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|02 - end - end - local.get $22 - f32.const 6 - f32.ne - br_if $folding-inner2 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - i32.const 0 - local.set $0 - f64.const 0 - local.set $23 - local.get $1 - i32.load offset=4 - local.set $30 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $29 - loop $for-loop|03 - local.get $0 - local.get $29 - i32.lt_s - if - local.get $30 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $21 - i32.const 4 - global.set $~argumentsLength - local.get $23 - local.get $21 - f64.add - local.set $23 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|03 - end - end - local.get $23 - f64.const 6 - f64.ne - br_if $folding-inner2 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $30 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $30 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $30 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - i32.const 0 - local.set $0 - local.get $30 - i32.load offset=4 - local.set $29 - local.get $30 - i32.load offset=8 - i32.const 1 - i32.sub - local.set $1 - loop $for-loop|04 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $1 - local.get $29 - i32.add - i32.load8_s - local.set $28 - i32.const 4 - global.set $~argumentsLength - local.get $0 - local.get $28 - i32.add - local.set $0 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|04 - end - end - local.get $0 - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner3 - local.get $30 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 14 - call $~lib/typedarray/Uint8Array#reduceRight - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner3 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 15 - call $~lib/typedarray/Uint8Array#reduceRight - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner3 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $30 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $30 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $30 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - local.set $0 - local.get $30 - i32.load offset=4 - local.set $29 - local.get $30 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.const 1 - i32.sub - local.set $1 - loop $for-loop|05 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $29 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $28 - i32.const 4 - global.set $~argumentsLength - local.get $0 - local.get $28 - i32.add - local.set $0 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|05 - end - end - local.get $0 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner3 - local.get $30 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $30 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $30 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $30 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - i32.const 0 - local.set $0 - local.get $30 - i32.load offset=4 - local.set $29 - local.get $30 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.const 1 - i32.sub - local.set $1 - loop $for-loop|06 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $29 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $28 - i32.const 4 - global.set $~argumentsLength - local.get $0 - local.get $28 - i32.add - local.set $0 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|06 - end - end - local.get $0 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner3 - local.get $30 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - block $folding-inner1 - local.get $1 - i32.const 18 - call $~lib/typedarray/Int32Array#reduceRight - i32.const 6 - i32.ne - br_if $folding-inner1 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 19 - call $~lib/typedarray/Int32Array#reduceRight - i32.const 6 - i32.ne - br_if $folding-inner1 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 20 - call $~lib/typedarray/Int64Array#reduceRight - i64.const 6 - i64.ne - br_if $folding-inner1 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 21 - call $~lib/typedarray/Int64Array#reduceRight - i64.const 6 - i64.ne - br_if $folding-inner1 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $0 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $0 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - f32.const 0 - local.set $22 - local.get $0 - i32.load offset=4 - local.set $30 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 1 - i32.sub - local.set $1 - loop $for-loop|07 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $30 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $16 - i32.const 4 - global.set $~argumentsLength - local.get $22 - local.get $16 - f32.add - local.set $22 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|07 - end - end - local.get $22 - f32.const 6 - f32.ne - br_if $folding-inner1 - local.get $0 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - f64.const 0 - local.set $23 - local.get $0 - i32.load offset=4 - local.set $30 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 1 - i32.sub - local.set $1 - loop $for-loop|08 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $30 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $21 - i32.const 4 - global.set $~argumentsLength - local.get $23 - local.get $21 - f64.add - local.set $23 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|08 - end - end - local.get $23 - f64.const 6 - f64.ne - br_if $folding-inner1 - local.get $0 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - local.set $29 - local.get $0 - i32.load offset=4 - local.set $26 - i32.const 12 - i32.const 3 - call $~lib/rt/tlsf/__alloc - local.set $30 - local.get $29 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $28 - loop $for-loop|09 - local.get $1 - local.get $29 - i32.lt_s - if - local.get $1 - local.get $26 - i32.add - i32.load8_s - local.set $27 - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $28 - i32.add - local.get $27 - local.get $27 - i32.mul - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|09 - end - end - local.get $30 - local.get $28 - call $~lib/rt/pure/__retain - i32.store - local.get $30 - local.get $28 - i32.store offset=4 - local.get $30 - local.get $29 - i32.store offset=8 - local.get $30 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 1 - i32.ne - br_if $folding-inner4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.ne - br_if $folding-inner5 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 9 - i32.ne - br_if $folding-inner6 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - local.set $29 - local.get $0 - i32.load offset=4 - local.set $26 - i32.const 12 - i32.const 4 - call $~lib/rt/tlsf/__alloc - local.set $30 - local.get $29 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $28 - loop $for-loop|010 - local.get $1 - local.get $29 - i32.lt_s - if - local.get $1 - local.get $26 - i32.add - i32.load8_u - local.set $27 - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $28 - i32.add - local.get $27 - local.get $27 - i32.mul - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|010 - end - end - local.get $30 - local.get $28 - call $~lib/rt/pure/__retain - i32.store - local.get $30 - local.get $28 - i32.store offset=4 - local.get $30 - local.get $29 - i32.store offset=8 - local.get $30 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 1 - i32.ne - br_if $folding-inner4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 4 - i32.ne - br_if $folding-inner5 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 9 - i32.ne - br_if $folding-inner6 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - local.set $29 - local.get $0 - i32.load offset=4 - local.set $26 - i32.const 12 - i32.const 5 - call $~lib/rt/tlsf/__alloc - local.set $30 - local.get $29 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $28 - loop $for-loop|011 - local.get $1 - local.get $29 - i32.lt_s - if - local.get $1 - local.get $26 - i32.add - i32.load8_u - local.set $27 - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $28 - i32.add - local.get $27 - local.get $27 - i32.mul - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|011 - end - end - local.get $30 - local.get $28 - call $~lib/rt/pure/__retain - i32.store - local.get $30 - local.get $28 - i32.store offset=4 - local.get $30 - local.get $29 - i32.store offset=8 - local.get $30 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 1 - i32.ne - br_if $folding-inner4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 4 - i32.ne - br_if $folding-inner5 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 9 - i32.ne - br_if $folding-inner6 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $28 - local.get $0 - i32.load offset=4 - local.set $26 - i32.const 12 - i32.const 6 - call $~lib/rt/tlsf/__alloc - local.set $30 - local.get $28 - i32.const 1 - i32.shl - local.tee $25 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $29 - loop $for-loop|012 - local.get $1 - local.get $28 - i32.lt_s - if - local.get $26 - local.get $1 - i32.const 1 - i32.shl - local.tee $24 - i32.add - i32.load16_s - local.set $27 - i32.const 3 - global.set $~argumentsLength - local.get $24 - local.get $29 - i32.add - local.get $27 - local.get $27 - i32.mul - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|012 - end - end - local.get $30 - local.get $29 - call $~lib/rt/pure/__retain - i32.store - local.get $30 - local.get $29 - i32.store offset=4 - local.get $30 - local.get $25 - i32.store offset=8 - local.get $30 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 1 - i32.ne - br_if $folding-inner4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 4 - i32.ne - br_if $folding-inner5 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 9 - i32.ne - br_if $folding-inner6 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $28 - local.get $0 - i32.load offset=4 - local.set $26 - i32.const 12 - i32.const 7 - call $~lib/rt/tlsf/__alloc - local.set $30 - local.get $28 - i32.const 1 - i32.shl - local.tee $25 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $29 - loop $for-loop|013 - local.get $1 - local.get $28 - i32.lt_s - if - local.get $26 - local.get $1 - i32.const 1 - i32.shl - local.tee $24 - i32.add - i32.load16_u - local.set $27 - i32.const 3 - global.set $~argumentsLength - local.get $24 - local.get $29 - i32.add - local.get $27 - local.get $27 - i32.mul - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|013 - end - end - local.get $30 - local.get $29 - call $~lib/rt/pure/__retain - i32.store - local.get $30 - local.get $29 - i32.store offset=4 - local.get $30 - local.get $25 - i32.store offset=8 - local.get $30 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 1 - i32.ne - br_if $folding-inner4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 4 - i32.ne - br_if $folding-inner5 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 9 - i32.ne - br_if $folding-inner6 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $28 - local.get $0 - i32.load offset=4 - local.set $26 - i32.const 12 - i32.const 8 - call $~lib/rt/tlsf/__alloc - local.set $30 - local.get $28 - i32.const 2 - i32.shl - local.tee $25 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $29 - loop $for-loop|014 - local.get $1 - local.get $28 - i32.lt_s - if - local.get $26 - local.get $1 - i32.const 2 - i32.shl - local.tee $24 - i32.add - i32.load - local.set $27 - i32.const 3 - global.set $~argumentsLength - local.get $24 - local.get $29 - i32.add - local.get $27 - local.get $27 - i32.mul - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|014 - end - end - local.get $30 - local.get $29 - call $~lib/rt/pure/__retain - i32.store - local.get $30 - local.get $29 - i32.store offset=4 - local.get $30 - local.get $25 - i32.store offset=8 - local.get $30 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.ne - br_if $folding-inner4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 4 - i32.ne - br_if $folding-inner5 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 9 - i32.ne - br_if $folding-inner6 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $28 - local.get $0 - i32.load offset=4 - local.set $26 - i32.const 12 - i32.const 9 - call $~lib/rt/tlsf/__alloc - local.set $30 - local.get $28 - i32.const 2 - i32.shl - local.tee $25 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $29 - loop $for-loop|015 - local.get $1 - local.get $28 - i32.lt_s - if - local.get $26 - local.get $1 - i32.const 2 - i32.shl - local.tee $24 - i32.add - i32.load - local.set $27 - i32.const 3 - global.set $~argumentsLength - local.get $24 - local.get $29 - i32.add - local.get $27 - local.get $27 - i32.mul - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|015 - end - end - local.get $30 - local.get $29 - call $~lib/rt/pure/__retain - i32.store - local.get $30 - local.get $29 - i32.store offset=4 - local.get $30 - local.get $25 - i32.store offset=8 - local.get $30 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 1 - i32.ne - br_if $folding-inner4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 4 - i32.ne - br_if $folding-inner5 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 9 - i32.ne - br_if $folding-inner6 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $28 - local.get $0 - i32.load offset=4 - local.set $27 - i32.const 12 - i32.const 10 - call $~lib/rt/tlsf/__alloc - local.set $30 - local.get $28 - i32.const 3 - i32.shl - local.tee $26 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $29 - loop $for-loop|016 - local.get $1 - local.get $28 - i32.lt_s - if - local.get $27 - local.get $1 - i32.const 3 - i32.shl - local.tee $25 - i32.add - i64.load - local.set $20 - i32.const 3 - global.set $~argumentsLength - local.get $25 - local.get $29 - i32.add - local.get $20 - local.get $20 - i64.mul - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|016 - end - end - local.get $30 - local.get $29 - call $~lib/rt/pure/__retain - i32.store - local.get $30 - local.get $29 - i32.store offset=4 - local.get $30 - local.get $26 - i32.store offset=8 - local.get $30 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 1 - i64.ne - br_if $folding-inner4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 4 - i64.ne - br_if $folding-inner5 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 9 - i64.ne - br_if $folding-inner6 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $28 - local.get $0 - i32.load offset=4 - local.set $27 - i32.const 12 - i32.const 11 - call $~lib/rt/tlsf/__alloc - local.set $30 - local.get $28 - i32.const 3 - i32.shl - local.tee $26 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $29 - loop $for-loop|017 - local.get $1 - local.get $28 - i32.lt_s - if - local.get $27 - local.get $1 - i32.const 3 - i32.shl - local.tee $25 - i32.add - i64.load - local.set $20 - i32.const 3 - global.set $~argumentsLength - local.get $25 - local.get $29 - i32.add - local.get $20 - local.get $20 - i64.mul - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|017 - end - end - local.get $30 - local.get $29 - call $~lib/rt/pure/__retain - i32.store - local.get $30 - local.get $29 - i32.store offset=4 - local.get $30 - local.get $26 - i32.store offset=8 - local.get $30 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 1 - i64.ne - br_if $folding-inner4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 4 - i64.ne - br_if $folding-inner5 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 9 - i64.ne - br_if $folding-inner6 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $0 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $0 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $28 - local.get $0 - i32.load offset=4 - local.set $27 - i32.const 12 - i32.const 12 - call $~lib/rt/tlsf/__alloc - local.set $30 - local.get $28 - i32.const 2 - i32.shl - local.tee $26 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $29 - loop $for-loop|018 - local.get $1 - local.get $28 - i32.lt_s - if - local.get $27 - local.get $1 - i32.const 2 - i32.shl - local.tee $25 - i32.add - f32.load - local.set $22 - i32.const 3 - global.set $~argumentsLength - local.get $25 - local.get $29 - i32.add - local.get $22 - local.get $22 - f32.mul - f32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|018 - end - end - local.get $30 - local.get $29 - call $~lib/rt/pure/__retain - i32.store - local.get $30 - local.get $29 - i32.store offset=4 - local.get $30 - local.get $26 - i32.store offset=8 - local.get $30 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 1 - f32.ne - br_if $folding-inner4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 4 - f32.ne - br_if $folding-inner5 - local.get $1 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 9 - f32.ne - br_if $folding-inner6 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $28 - local.get $0 - i32.load offset=4 - local.set $27 - i32.const 12 - i32.const 13 - call $~lib/rt/tlsf/__alloc - local.set $30 - local.get $28 - i32.const 3 - i32.shl - local.tee $26 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $29 - loop $for-loop|019 - local.get $1 - local.get $28 - i32.lt_s - if - local.get $27 - local.get $1 - i32.const 3 - i32.shl - local.tee $25 - i32.add - f64.load - local.set $23 - i32.const 3 - global.set $~argumentsLength - local.get $25 - local.get $29 - i32.add - local.get $23 - local.get $23 - f64.mul - f64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|019 - end - end - local.get $30 - local.get $29 - call $~lib/rt/pure/__retain - i32.store - local.get $30 - local.get $29 - i32.store offset=4 - local.get $30 - local.get $26 - i32.store offset=8 - local.get $30 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 1 - f64.ne - br_if $folding-inner4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.ne - br_if $folding-inner5 - local.get $1 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 9 - f64.ne - br_if $folding-inner6 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 46 - call $~lib/typedarray/Int8Array#some - i32.eqz - br_if $folding-inner7 - local.get $1 - i32.const 47 - call $~lib/typedarray/Int8Array#some - br_if $folding-inner8 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 48 - call $~lib/typedarray/Uint8Array#some - i32.eqz - br_if $folding-inner7 - local.get $1 - i32.const 49 - call $~lib/typedarray/Uint8Array#some - br_if $folding-inner8 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 50 - call $~lib/typedarray/Uint8Array#some - i32.eqz - br_if $folding-inner7 - local.get $1 - i32.const 51 - call $~lib/typedarray/Uint8Array#some - br_if $folding-inner8 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 52 - call $~lib/typedarray/Int16Array#some - i32.eqz - br_if $folding-inner7 - local.get $1 - i32.const 53 - call $~lib/typedarray/Int16Array#some - br_if $folding-inner8 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 54 - call $~lib/typedarray/Uint16Array#some - i32.eqz - br_if $folding-inner7 - local.get $1 - i32.const 55 - call $~lib/typedarray/Uint16Array#some - br_if $folding-inner8 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 56 - call $~lib/typedarray/Int32Array#some - i32.eqz - br_if $folding-inner7 - local.get $1 - i32.const 57 - call $~lib/typedarray/Int32Array#some - br_if $folding-inner8 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 58 - call $~lib/typedarray/Int32Array#some - i32.eqz - br_if $folding-inner7 - local.get $1 - i32.const 59 - call $~lib/typedarray/Int32Array#some - br_if $folding-inner8 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 60 - call $~lib/typedarray/Int64Array#some - i32.eqz - br_if $folding-inner7 - local.get $1 - i32.const 61 - call $~lib/typedarray/Int64Array#some - br_if $folding-inner8 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 62 - call $~lib/typedarray/Int64Array#some - i32.eqz - br_if $folding-inner7 - local.get $1 - i32.const 63 - call $~lib/typedarray/Int64Array#some - br_if $folding-inner8 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 64 - call $~lib/typedarray/Float32Array#some - i32.eqz - br_if $folding-inner7 - local.get $1 - i32.const 65 - call $~lib/typedarray/Float32Array#some - br_if $folding-inner8 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 66 - call $~lib/typedarray/Float64Array#some - i32.eqz - br_if $folding-inner7 - local.get $1 - i32.const 67 - call $~lib/typedarray/Float64Array#some - br_if $folding-inner8 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 68 - call $~lib/typedarray/Int8Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner9 - local.get $1 - i32.const 69 - call $~lib/typedarray/Int8Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner10 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 70 - call $~lib/typedarray/Uint8Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner9 - local.get $1 - i32.const 71 - call $~lib/typedarray/Uint8Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner10 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 72 - call $~lib/typedarray/Uint8Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner9 - local.get $1 - i32.const 73 - call $~lib/typedarray/Uint8Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner10 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 74 - call $~lib/typedarray/Int16Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner9 - local.get $1 - i32.const 75 - call $~lib/typedarray/Int16Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner10 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 76 - call $~lib/typedarray/Uint16Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner9 - local.get $1 - i32.const 77 - call $~lib/typedarray/Uint16Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner10 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 78 - call $~lib/typedarray/Int32Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner9 - local.get $1 - i32.const 79 - call $~lib/typedarray/Int32Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner10 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 80 - call $~lib/typedarray/Int32Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner9 - local.get $1 - i32.const 81 - call $~lib/typedarray/Int32Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner10 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 82 - call $~lib/typedarray/Int64Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner9 - local.get $1 - i32.const 83 - call $~lib/typedarray/Int64Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner10 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 84 - call $~lib/typedarray/Int64Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner9 - local.get $1 - i32.const 85 - call $~lib/typedarray/Int64Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner10 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 86 - call $~lib/typedarray/Float32Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner9 - local.get $1 - i32.const 87 - call $~lib/typedarray/Float32Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner10 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 88 - call $~lib/typedarray/Float64Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner9 - local.get $1 - i32.const 89 - call $~lib/typedarray/Float64Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner10 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 90 - call $~lib/typedarray/Int8Array#every - i32.eqz - br_if $folding-inner11 - local.get $1 - i32.const 91 - call $~lib/typedarray/Int8Array#every - br_if $folding-inner12 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 92 - call $~lib/typedarray/Uint8Array#every - i32.eqz - br_if $folding-inner11 - local.get $1 - i32.const 93 - call $~lib/typedarray/Uint8Array#every - br_if $folding-inner12 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 94 - call $~lib/typedarray/Uint8Array#every - i32.eqz - br_if $folding-inner11 - local.get $1 - i32.const 95 - call $~lib/typedarray/Uint8Array#every - br_if $folding-inner12 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 96 - call $~lib/typedarray/Int16Array#every - i32.eqz - br_if $folding-inner11 - local.get $1 - i32.const 97 - call $~lib/typedarray/Int16Array#every - br_if $folding-inner12 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 98 - call $~lib/typedarray/Uint16Array#every - i32.eqz - br_if $folding-inner11 - local.get $1 - i32.const 99 - call $~lib/typedarray/Uint16Array#every - br_if $folding-inner12 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 100 - call $~lib/typedarray/Int32Array#every - i32.eqz - br_if $folding-inner11 - local.get $1 - i32.const 101 - call $~lib/typedarray/Int32Array#every - br_if $folding-inner12 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 102 - call $~lib/typedarray/Int32Array#every - i32.eqz - br_if $folding-inner11 - local.get $1 - i32.const 103 - call $~lib/typedarray/Int32Array#every - br_if $folding-inner12 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 104 - call $~lib/typedarray/Int64Array#every - i32.eqz - br_if $folding-inner11 - local.get $1 - i32.const 105 - call $~lib/typedarray/Int64Array#every - br_if $folding-inner12 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 106 - call $~lib/typedarray/Int64Array#every - i32.eqz - br_if $folding-inner11 - local.get $1 - i32.const 107 - call $~lib/typedarray/Int64Array#every - br_if $folding-inner12 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 108 - call $~lib/typedarray/Float32Array#every - i32.eqz - br_if $folding-inner11 - local.get $1 - i32.const 109 - call $~lib/typedarray/Float32Array#every - br_if $folding-inner12 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 110 - call $~lib/typedarray/Float64Array#every - i32.eqz - br_if $folding-inner11 - local.get $1 - i32.const 111 - call $~lib/typedarray/Float64Array#every - br_if $folding-inner12 - local.get $1 - call $~lib/rt/pure/__release - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - global.set $std/typedarray/forEachSelf - local.get $0 - i32.const 0 - i32.const 2704 - i32.const 0 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.const 2704 - i32.const 1 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 2 - i32.const 2704 - i32.const 2 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=4 - local.set $30 - local.get $0 - i32.load offset=8 - local.set $29 - loop $for-loop|020 - local.get $1 - local.get $29 - i32.lt_s - if - local.get $1 - local.get $30 - i32.add - i32.load8_s - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $0 - call $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|020 - end - end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner13 - local.get $0 - call $~lib/rt/pure/__release - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - i32.const 2704 - i32.const 0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2704 - i32.const 1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 2704 - i32.const 2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 113 - call $~lib/typedarray/Uint8Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner13 - local.get $1 - call $~lib/rt/pure/__release - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - i32.const 2704 - i32.const 0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2704 - i32.const 1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 2704 - i32.const 2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 114 - call $~lib/typedarray/Uint8Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner13 - local.get $1 - call $~lib/rt/pure/__release - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - global.set $std/typedarray/forEachSelf - local.get $0 - i32.const 0 - i32.const 2704 - i32.const 0 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $0 - i32.const 1 - i32.const 2704 - i32.const 1 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - local.get $0 - i32.const 2 - i32.const 2704 - i32.const 2 - call $~lib/array/Array#__get - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - call $~lib/typedarray/Int16Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=4 - local.set $30 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $29 - loop $for-loop|021 - local.get $1 - local.get $29 - i32.lt_s - if - local.get $30 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $0 - call $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|021 - end - end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner13 - local.get $0 - call $~lib/rt/pure/__release - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - global.set $std/typedarray/forEachSelf - local.get $0 - i32.const 0 - i32.const 2704 - i32.const 0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $0 - i32.const 1 - i32.const 2704 - i32.const 1 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $0 - i32.const 2 - i32.const 2704 - i32.const 2 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=4 - local.set $30 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $29 - loop $for-loop|022 - local.get $1 - local.get $29 - i32.lt_s - if - local.get $30 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $0 - call $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|022 - end - end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner13 - local.get $0 - call $~lib/rt/pure/__release - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - i32.const 2704 - i32.const 0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 2704 - i32.const 1 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 2704 - i32.const 2 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 117 - call $~lib/typedarray/Int32Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner13 - local.get $1 - call $~lib/rt/pure/__release - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - i32.const 2704 - i32.const 0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 2704 - i32.const 1 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 2704 - i32.const 2 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 118 - call $~lib/typedarray/Int32Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner13 - local.get $1 - call $~lib/rt/pure/__release - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - i32.const 2704 - i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i32.const 2704 - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i32.const 2704 - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 119 - call $~lib/typedarray/Int64Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner13 - local.get $1 - call $~lib/rt/pure/__release - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - i32.const 2704 - i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i32.const 2704 - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i32.const 2704 - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 120 - call $~lib/typedarray/Int64Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner13 - local.get $1 - call $~lib/rt/pure/__release - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - i32.const 2704 - i32.const 0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - i32.const 2704 - i32.const 1 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - i32.const 2704 - i32.const 2 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $30 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $29 - loop $for-loop|023 - local.get $0 - local.get $29 - i32.lt_s - if - local.get $30 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 3 - global.set $~argumentsLength - local.get $0 - local.get $1 - call $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|023 - end - end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner13 - local.get $1 - call $~lib/rt/pure/__release - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - global.set $std/typedarray/forEachSelf - local.get $1 - i32.const 0 - i32.const 2704 - i32.const 0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - i32.const 2704 - i32.const 1 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - i32.const 2704 - i32.const 2 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $30 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $29 - loop $for-loop|024 - local.get $0 - local.get $29 - i32.lt_s - if - local.get $30 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 3 - global.set $~argumentsLength - local.get $0 - local.get $1 - call $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|024 - end - end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner13 - local.get $1 - call $~lib/rt/pure/__release - call $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> - i32.const 1 - call $~lib/typedarray/Float64Array#constructor - local.tee $30 - i32.const 0 - f64.const nan:0x8000000000000 - call $~lib/typedarray/Float64Array#__set - local.get $30 - f64.const nan:0x8000000000000 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - i32.const 0 - local.set $1 - block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $30 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $29 - if (result i32) - i32.const 0 - local.get $29 - i32.ge_s - else - i32.const 1 - end - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $30 - i32.load offset=4 - local.set $27 - loop $while-continue|0 - local.get $0 - local.get $29 - i32.lt_s - if - local.get $27 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $23 - f64.const nan:0x8000000000000 - f64.eq - if (result i32) - i32.const 1 - else - local.get $23 - local.get $23 - f64.ne - end - if - i32.const 1 - local.set $1 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0 - end - end - end - local.get $1 - i32.const 0 - i32.ne - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - call $~lib/typedarray/Float32Array#constructor - local.tee $29 - i32.const 0 - f32.const nan:0x400000 - call $~lib/typedarray/Float32Array#__set - local.get $29 - f32.const nan:0x400000 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $1 - i32.const 0 - local.set $0 - block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $29 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $28 - if (result i32) - i32.const 0 - local.get $28 - i32.ge_s - else - i32.const 1 - end - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $29 - i32.load offset=4 - local.set $26 - loop $while-continue|025 - local.get $1 - local.get $28 - i32.lt_s - if - local.get $26 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $22 - f32.const nan:0x400000 - f32.eq - if (result i32) - i32.const 1 - else - local.get $22 - local.get $22 - f32.ne - end - if - i32.const 1 - local.set $0 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|025 - end - end - end - local.get $0 - i32.const 0 - i32.ne - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1312 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $30 - call $~lib/rt/pure/__release - local.get $29 - call $~lib/rt/pure/__release - i32.const 5 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - local.get $1 - call $~lib/typedarray/Int8Array#join - local.tee $0 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner0 - local.get $1 - call $~lib/typedarray/Int8Array#join - local.tee $30 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner18 - local.get $0 - call $~lib/rt/pure/__release - local.get $30 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 5 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Float64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 4 + i32.add + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 32 + i32.add + local.set $4 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $6 + loop $for-loop|0 + local.get $2 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.get $5 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_s + f64.convert_i32_s + f64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $7 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $7 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $7 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $5 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $8 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $8 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $8 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + i32.const 10 + call $~lib/typedarray/Float64Array#constructor + local.tee $13 + call $~lib/rt/pure/__retain + local.tee $3 + call $~lib/rt/pure/__retain + local.set $1 + block $folding-inner1 + i32.const 4592 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $1 + i32.load offset=4 + local.set $4 + local.get $2 + i32.load offset=4 + local.set $9 + local.get $2 + i32.load offset=12 + local.set $6 + loop $for-loop|0 + local.get $0 + local.get $6 + i32.lt_s + if + local.get $4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $9 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + f64.convert_i32_s + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 4592 + call $~lib/rt/pure/__release + local.get $3 + i32.const 10 + i32.const 3 + i32.const 17 + i32.const 8144 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + i32.const 0 + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.set $1 + i32.const 4656 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 + i32.const 3 + i32.add + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $1 + i32.load offset=4 + i32.const 24 + i32.add + local.set $4 + local.get $2 + i32.load offset=4 + local.set $6 + local.get $2 + i32.load offset=12 + local.set $10 + loop $for-loop|00 + local.get $0 + local.get $10 + i32.lt_s + if + local.get $4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $6 + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load + f64.promote_f32 + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|00 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 4656 + call $~lib/rt/pure/__release + local.get $3 + i32.const 10 + i32.const 3 + i32.const 17 + i32.const 8288 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + local.get $3 + local.get $7 + call $~lib/typedarray/Float64Array#set<~lib/typedarray/Int64Array> + local.get $3 + i32.const 10 + i32.const 3 + i32.const 17 + i32.const 8384 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $10 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + i32.const 0 + local.set $0 + local.get $5 + call $~lib/rt/pure/__retain + local.set $4 + local.get $3 + call $~lib/rt/pure/__retain + local.set $1 + local.get $4 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=8 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $1 + i32.load offset=4 + local.set $11 + local.get $2 + i32.load offset=4 + local.set $12 + local.get $2 + i32.load offset=8 + local.set $14 + loop $for-loop|001 + local.get $0 + local.get $14 + i32.lt_s + if + local.get $11 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $12 + i32.add + i32.load8_u + f64.convert_i32_u + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|001 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $3 + local.get $8 + call $~lib/typedarray/Float64Array#set<~lib/typedarray/Int16Array> + i32.const 0 + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.set $1 + i32.const 4800 + call $~lib/rt/pure/__retain + local.tee $2 + i32.load offset=12 + i32.const 7 + i32.add + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.gt_s + br_if $folding-inner1 + local.get $1 + i32.load offset=4 + i32.const 56 + i32.add + local.set $4 + local.get $2 + i32.load offset=4 + local.set $11 + local.get $2 + i32.load offset=12 + local.set $12 + loop $for-loop|01 + local.get $0 + local.get $12 + i32.lt_s + if + local.get $4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $11 + i32.add + i32.load8_s + f64.convert_i32_s + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|01 + end + end + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 4800 + call $~lib/rt/pure/__release + local.get $3 + i32.const 10 + i32.const 3 + i32.const 17 + i32.const 8480 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + local.get $0 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $13 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + return + end + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 1 + i32.add + local.set $5 + local.get $1 + i32.load offset=4 + local.set $6 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.lt_s + if + local.get $2 + local.get $5 + i32.add + local.get $6 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq + if (result i32) + f32.const 0 + f32.const 255 + local.get $4 + f32.min + f32.max + i32.trunc_f32_u + else + i32.const 0 + end + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 8 + i32.add + local.get $0 + i32.load offset=8 + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 8 + i32.add + local.set $5 + local.get $1 + i32.load offset=4 + local.set $6 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.lt_s + if + local.get $2 + local.get $5 + i32.add + local.get $6 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + local.get $4 + i32.const 255 + local.get $4 + i32.sub + i32.const 31 + i32.shr_s + i32.or + i32.and + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $1 + call $~lib/rt/pure/__retain + local.set $3 + local.get $0 + call $~lib/rt/pure/__retain + local.set $0 + local.get $3 + call $~lib/rt/pure/__retain + local.tee $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $0 + i32.load offset=8 + i32.gt_s + if + i32.const 1376 + i32.const 1440 + i32.const 1775 + i32.const 47 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $4 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $6 + loop $for-loop|0 + local.get $2 + local.get $6 + i32.lt_s + if + local.get $2 + local.get $4 + i32.add + i32.const 255 + local.get $5 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $7 + i32.const 255 + local.get $7 + i32.lt_u + select + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + ) + (func $start:std/typedarray + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (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 f32) + (local $20 f64) + (local $21 f32) + (local $22 i32) + (local $23 f64) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + i32.const 0 + call $std/typedarray/testInstantiate + i32.const 5 + call $std/typedarray/testInstantiate + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 95 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1312 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 99 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 100 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#subarray + local.set $0 + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 106 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + i32.const 8 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 7 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 3 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 5 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 6 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 7 + f64.const 8 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Float64Array#subarray + local.set $0 + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 16 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 123 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 32 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 124 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $~argumentsLength + block $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $28 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $29 + i32.const 1 + i32.le_s + br_if $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $28 + i32.load offset=4 + local.set $1 + local.get $29 + i32.const 2 + i32.eq + if + local.get $1 + f64.load offset=8 + local.set $23 + local.get $1 + f64.load + local.set $20 + i32.const 2 + global.set $~argumentsLength + local.get $23 + local.get $20 + call $~lib/util/sort/COMPARATOR~anonymous|0 + i32.const 0 + i32.lt_s + if + local.get $1 + local.get $20 + f64.store offset=8 + local.get $1 + local.get $23 + f64.store + end + br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 + end + local.get $29 + i32.const 256 + i32.lt_s + if + local.get $1 + local.get $29 + call $~lib/util/sort/insertionSort + else + local.get $1 + local.get $29 + call $~lib/util/sort/weakHeapSort + end + end + local.get $28 + call $~lib/rt/pure/__release + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.eq + if (result i32) + local.get $0 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.eq + else + i32.const 0 + end + if (result i32) + local.get $0 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.eq + else + i32.const 0 + end + if (result i32) + local.get $0 + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.const 0 + i32.const -32 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 256 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + if + i32.const 0 + i32.const 1312 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 136 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 255 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 137 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $1 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 1504 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $29 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 149 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $1 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 1584 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $28 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 152 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $1 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 1616 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $27 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 155 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.const -2 + i32.const 2147483647 + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $1 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 1648 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $26 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 158 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $1 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 1680 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $25 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 161 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $0 + i32.const 0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $0 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 165 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 167 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3 + i32.const 0 + i32.const 14 + i32.const 1712 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $24 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 168 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 1744 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $22 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 169 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + local.get $28 + call $~lib/rt/pure/__release + local.get $27 + call $~lib/rt/pure/__release + local.get $26 + call $~lib/rt/pure/__release + local.get $25 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $24 + call $~lib/rt/pure/__release + local.get $22 + call $~lib/rt/pure/__release + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $1 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1776 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $29 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 181 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $1 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1824 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $28 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 184 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $1 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1872 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $27 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 187 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.const -2 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $1 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1920 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $26 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 190 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $1 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 1968 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $25 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 193 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $0 + i32.const 0 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 197 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 198 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 199 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3 + i32.const 2 + i32.const 15 + i32.const 2016 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $24 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 200 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 2048 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $22 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 201 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + local.get $28 + call $~lib/rt/pure/__release + local.get $27 + call $~lib/rt/pure/__release + local.get $26 + call $~lib/rt/pure/__release + local.get $25 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $24 + call $~lib/rt/pure/__release + local.get $22 + call $~lib/rt/pure/__release + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 5 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 6 + call $~lib/typedarray/Int8Array#subarray + local.tee $0 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 222 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 223 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 224 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 225 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.const 5 + call $~lib/typedarray/Int8Array#subarray + local.tee $29 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 228 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 229 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 230 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 231 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $28 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 234 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $28 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 235 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $28 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 236 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $28 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 237 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + local.get $28 + call $~lib/rt/pure/__release + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.set $29 + local.get $1 + i32.const 0 + i32.const 3 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $28 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 2096 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $27 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 248 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.set $0 + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + i32.const 1 + i32.const 3 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $26 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 2144 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $25 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 250 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.get $0 + call $~lib/rt/pure/__release + local.tee $0 + i32.const 1 + i32.const 2 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $24 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 2192 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $22 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 252 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.get $0 + call $~lib/rt/pure/__release + local.tee $0 + i32.const 2 + i32.const 2 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $18 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 2240 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $17 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 254 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.get $0 + call $~lib/rt/pure/__release + local.tee $0 + i32.const 0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $16 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 2288 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $15 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 256 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.get $0 + call $~lib/rt/pure/__release + local.tee $0 + i32.const 1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $14 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 2336 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $13 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 258 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.get $0 + call $~lib/rt/pure/__release + local.tee $0 + i32.const 1 + i32.const 2 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $12 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 2384 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $11 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 260 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.get $0 + call $~lib/rt/pure/__release + local.tee $0 + i32.const 0 + i32.const -2 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $10 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 2432 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 262 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.get $0 + call $~lib/rt/pure/__release + local.tee $0 + i32.const 0 + i32.const -2 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $8 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 2480 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 264 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.get $0 + call $~lib/rt/pure/__release + local.tee $0 + i32.const -4 + i32.const -3 + i32.const -2 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $6 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 2528 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 266 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + i32.const -4 + i32.const -3 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.tee $4 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 2576 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $3 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 268 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + 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/typedarray/Int32Array#copyWithin + local.tee $1 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 2624 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $2 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 270 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + local.get $28 + call $~lib/rt/pure/__release + local.get $27 + call $~lib/rt/pure/__release + local.get $26 + call $~lib/rt/pure/__release + local.get $25 + call $~lib/rt/pure/__release + local.get $24 + call $~lib/rt/pure/__release + local.get $22 + call $~lib/rt/pure/__release + local.get $18 + call $~lib/rt/pure/__release + local.get $17 + call $~lib/rt/pure/__release + local.get $16 + call $~lib/rt/pure/__release + local.get $15 + call $~lib/rt/pure/__release + local.get $14 + call $~lib/rt/pure/__release + local.get $13 + call $~lib/rt/pure/__release + local.get $12 + call $~lib/rt/pure/__release + local.get $11 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + local.get $9 + 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 $5 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $29 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 282 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 283 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 284 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#slice + local.tee $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 287 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 288 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 289 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1312 + i32.const 290 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 291 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#slice + local.tee $28 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 294 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $28 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 295 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $28 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1312 + i32.const 296 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $28 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 297 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $1 + i32.const 0 + i32.const 2147483647 + call $~lib/typedarray/Int32Array#slice + local.tee $27 + i32.eq + if + i32.const 0 + i32.const 1312 + i32.const 300 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $27 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 301 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $27 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 302 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $27 + i32.load offset=8 + local.get $1 + i32.load offset=8 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 303 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $28 + call $~lib/rt/pure/__release + local.get $27 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $27 + call $~lib/rt/pure/__retain + local.tee $29 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $29 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $29 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + i32.const 0 + local.set $1 + i32.const 0 + local.set $0 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $28 + i32.load offset=4 + local.set $26 + local.get $28 + i32.load offset=8 + local.set $25 + loop $for-loop|0 + local.get $1 + local.get $25 + i32.lt_s + if + local.get $1 + local.get $26 + i32.add + i32.load8_s + local.set $24 + i32.const 4 + global.set $~argumentsLength + local.get $0 + local.get $24 + i32.add + local.set $0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $28 + call $~lib/rt/pure/__release + block $folding-inner18 + block $folding-inner0 + block $folding-inner17 + block $folding-inner16 + block $folding-inner13 + block $folding-inner12 + block $folding-inner11 + block $folding-inner10 + block $folding-inner9 + block $folding-inner8 + block $folding-inner7 + block $folding-inner6 + block $folding-inner5 + block $folding-inner4 + block $folding-inner3 + block $folding-inner2 + local.get $0 + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner2 + local.get $27 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + call $~lib/typedarray/Uint8Array#reduce + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 4 + call $~lib/typedarray/Uint8Array#reduce + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $27 + call $~lib/rt/pure/__retain + local.tee $29 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $29 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $29 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + local.set $1 + i32.const 0 + local.set $0 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $28 + i32.load offset=4 + local.set $26 + local.get $28 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $25 + loop $for-loop|00 + local.get $1 + local.get $25 + i32.lt_s + if + local.get $26 local.get $1 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $1 + i32.shl + i32.add + i32.load16_s + local.set $24 i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - call $~lib/typedarray/Uint8Array#join - local.tee $30 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner0 - call $~lib/typedarray/Uint8Array#join - local.tee $0 + global.set $~argumentsLength local.get $0 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner18 - local.get $30 - call $~lib/rt/pure/__release - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 + local.get $24 + i32.add + local.set $0 local.get $1 - i32.const 0 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set + i32.add + local.set $1 + br $for-loop|00 + end + end + local.get $28 + call $~lib/rt/pure/__release + local.get $0 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner2 + local.get $27 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $27 + call $~lib/rt/pure/__retain + local.tee $29 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $29 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $29 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + i32.const 0 + local.set $1 + i32.const 0 + local.set $0 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $28 + i32.load offset=4 + local.set $26 + local.get $28 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $25 + loop $for-loop|01 + local.get $1 + local.get $25 + i32.lt_s + if + local.get $26 local.get $1 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + i32.shl + i32.add + i32.load16_u + local.set $24 i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - call $~lib/typedarray/Uint8Array#join - local.tee $30 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner0 - call $~lib/typedarray/Uint8Array#join - local.tee $0 + global.set $~argumentsLength local.get $0 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner18 - local.get $30 - call $~lib/rt/pure/__release - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 5 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set + local.get $24 + i32.add + local.set $0 local.get $1 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set + i32.add + local.set $1 + br $for-loop|01 + end + end + local.get $28 + call $~lib/rt/pure/__release + local.get $0 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner2 + local.get $27 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 7 + call $~lib/typedarray/Int32Array#reduce + i32.const 6 + i32.ne + br_if $folding-inner2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 8 + call $~lib/typedarray/Int32Array#reduce + i32.const 6 + i32.ne + br_if $folding-inner2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 9 + call $~lib/typedarray/Int64Array#reduce + i64.const 6 + i64.ne + br_if $folding-inner2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 10 + call $~lib/typedarray/Int64Array#reduce + i64.const 6 + i64.ne + br_if $folding-inner2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $28 + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $29 + i32.load offset=4 + local.set $27 + local.get $29 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $26 + loop $for-loop|02 + local.get $1 + local.get $26 + i32.lt_s + if + local.get $27 local.get $1 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - local.get $1 + i32.shl + i32.add + f32.load + local.set $19 i32.const 4 - i32.const 5 - call $~lib/typedarray/Int16Array#__set - local.get $1 - call $~lib/typedarray/Int16Array#join - local.tee $0 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner0 - local.get $1 - call $~lib/typedarray/Int16Array#join - local.tee $30 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner18 - local.get $0 - call $~lib/rt/pure/__release - local.get $30 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 5 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set + global.set $~argumentsLength + local.get $21 + local.get $19 + f32.add + local.set $21 local.get $1 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set + i32.add + local.set $1 + br $for-loop|02 + end + end + local.get $29 + call $~lib/rt/pure/__release + local.get $21 + f32.const 6 + f32.ne + br_if $folding-inner2 + local.get $28 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $28 + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + i32.const 0 + local.set $1 + f64.const 0 + local.set $23 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $29 + i32.load offset=4 + local.set $27 + local.get $29 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $26 + loop $for-loop|03 + local.get $1 + local.get $26 + i32.lt_s + if + local.get $27 local.get $1 i32.const 3 + i32.shl + i32.add + f64.load + local.set $20 i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - call $~lib/typedarray/Uint16Array#join - local.tee $0 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner0 - local.get $1 - call $~lib/typedarray/Uint16Array#join - local.tee $30 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner18 - local.get $0 - call $~lib/rt/pure/__release - local.get $30 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set + global.set $~argumentsLength + local.get $23 + local.get $20 + f64.add + local.set $23 local.get $1 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set + i32.add + local.set $1 + br $for-loop|03 + end + end + local.get $29 + call $~lib/rt/pure/__release + local.get $23 + f64.const 6 + f64.ne + br_if $folding-inner2 + local.get $28 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $27 + call $~lib/rt/pure/__retain + local.tee $29 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $29 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $29 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + i32.const 0 + local.set $0 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $28 + i32.load offset=4 + local.set $26 + local.get $28 + i32.load offset=8 + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|04 + local.get $1 + i32.const 0 + i32.ge_s + if local.get $1 + local.get $26 + i32.add + i32.load8_s + local.set $25 i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - local.get $1 - call $~lib/typedarray/Int32Array#join - local.tee $0 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner0 - local.get $1 - call $~lib/typedarray/Int32Array#join - local.tee $30 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner18 + global.set $~argumentsLength local.get $0 - call $~lib/rt/pure/__release - local.get $30 - call $~lib/rt/pure/__release + local.get $25 + i32.add + local.set $0 local.get $1 - call $~lib/rt/pure/__release - i32.const 5 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.const 0 i32.const 1 - call $~lib/typedarray/Uint32Array#__set + i32.sub + local.set $1 + br $for-loop|04 + end + end + local.get $28 + call $~lib/rt/pure/__release + local.get $0 + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner3 + local.get $27 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 14 + call $~lib/typedarray/Uint8Array#reduceRight + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 15 + call $~lib/typedarray/Uint8Array#reduceRight + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $27 + call $~lib/rt/pure/__retain + local.tee $29 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $29 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $29 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + local.set $0 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $28 + i32.load offset=4 + local.set $26 + local.get $28 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|05 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $26 local.get $1 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $1 + i32.shl + i32.add + i32.load16_s + local.set $25 i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - call $~lib/typedarray/Uint32Array#join - local.tee $0 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner0 - local.get $1 - call $~lib/typedarray/Uint32Array#join - local.tee $30 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner18 + global.set $~argumentsLength local.get $0 - call $~lib/rt/pure/__release - local.get $30 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 5 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set + local.get $25 + i32.add + local.set $0 local.get $1 i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Int64Array#__set + i32.sub + local.set $1 + br $for-loop|05 + end + end + local.get $28 + call $~lib/rt/pure/__release + local.get $0 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner3 + local.get $27 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $27 + call $~lib/rt/pure/__retain + local.tee $29 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $29 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $29 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + i32.const 0 + local.set $0 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $28 + i32.load offset=4 + local.set $26 + local.get $28 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|06 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $26 local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $25 i32.const 4 - i64.const 5 - call $~lib/typedarray/Int64Array#__set - local.get $1 - call $~lib/typedarray/Int64Array#join - local.tee $0 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner0 - local.get $1 - call $~lib/typedarray/Int64Array#join - local.tee $30 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner18 + global.set $~argumentsLength local.get $0 - call $~lib/rt/pure/__release - local.get $30 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 5 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set + local.get $25 + i32.add + local.set $0 local.get $1 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 4 - i64.const 5 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - call $~lib/typedarray/Uint64Array#join - local.tee $0 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner0 - local.get $1 - call $~lib/typedarray/Uint64Array#join - local.tee $30 - i32.const 3296 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner18 - local.get $0 - call $~lib/rt/pure/__release - local.get $30 - call $~lib/rt/pure/__release + i32.sub + local.set $1 + br $for-loop|06 + end + end + local.get $28 + call $~lib/rt/pure/__release + local.get $0 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner3 + local.get $27 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + block $folding-inner1 + local.get $1 + i32.const 18 + call $~lib/typedarray/Int32Array#reduceRight + i32.const 6 + i32.ne + br_if $folding-inner1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 19 + call $~lib/typedarray/Int32Array#reduceRight + i32.const 6 + i32.ne + br_if $folding-inner1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 20 + call $~lib/typedarray/Int64Array#reduceRight + i64.const 6 + i64.ne + br_if $folding-inner1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 21 + call $~lib/typedarray/Int64Array#reduceRight + i64.const 6 + i64.ne + br_if $folding-inner1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $28 + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + f32.const 0 + local.set $21 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $29 + i32.load offset=4 + local.set $27 + local.get $29 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|07 local.get $1 - call $~lib/rt/pure/__release - i32.const 5 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 3 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 4 - f32.const 5 - call $~lib/typedarray/Float32Array#__set - local.get $1 - call $~lib/typedarray/Float32Array#join - local.tee $0 - i32.const 4400 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner16 - local.get $1 - call $~lib/typedarray/Float32Array#join - local.tee $30 - i32.const 4400 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner17 - local.get $0 - call $~lib/rt/pure/__release - local.get $30 - call $~lib/rt/pure/__release + i32.ge_s + if + local.get $27 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $19 + i32.const 4 + global.set $~argumentsLength + local.get $21 + local.get $19 + f32.add + local.set $21 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|07 + end + end + local.get $29 + call $~lib/rt/pure/__release + local.get $21 + f32.const 6 + f32.ne + br_if $folding-inner1 + local.get $28 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $28 + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + f64.const 0 + local.set $23 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $29 + i32.load offset=4 + local.set $27 + local.get $29 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|08 local.get $1 - call $~lib/rt/pure/__release - i32.const 5 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set + i32.ge_s + if + local.get $27 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $20 + i32.const 4 + global.set $~argumentsLength + local.get $23 + local.get $20 + f64.add + local.set $23 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|08 + end + end + local.get $29 + call $~lib/rt/pure/__release + local.get $23 + f64.const 6 + f64.ne + br_if $folding-inner1 + local.get $28 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $24 + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $26 + i32.load offset=8 + local.set $28 + local.get $26 + i32.load offset=4 + local.set $22 + i32.const 12 + i32.const 3 + call $~lib/rt/tlsf/__alloc + local.set $29 + local.get $28 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $27 + loop $for-loop|09 local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set + local.get $28 + i32.lt_s + if + local.get $1 + local.get $22 + i32.add + i32.load8_s + local.set $25 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $27 + i32.add + local.get $25 + local.get $25 + i32.mul + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|09 + end + end + local.get $29 + local.get $27 + call $~lib/rt/pure/__retain + i32.store + local.get $29 + local.get $27 + i32.store offset=4 + local.get $29 + local.get $28 + i32.store offset=8 + local.get $29 + call $~lib/rt/pure/__retain + local.set $1 + local.get $26 + call $~lib/rt/pure/__release + local.get $1 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.ne + br_if $folding-inner4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.ne + br_if $folding-inner5 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 9 + i32.ne + br_if $folding-inner6 + local.get $24 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $24 + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $26 + i32.load offset=8 + local.set $28 + local.get $26 + i32.load offset=4 + local.set $22 + i32.const 12 + i32.const 4 + call $~lib/rt/tlsf/__alloc + local.set $29 + local.get $28 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $27 + loop $for-loop|010 local.get $1 - i32.const 3 - f64.const 4 - call $~lib/typedarray/Float64Array#__set + local.get $28 + i32.lt_s + if + local.get $1 + local.get $22 + i32.add + i32.load8_u + local.set $25 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $27 + i32.add + local.get $25 + local.get $25 + i32.mul + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|010 + end + end + local.get $29 + local.get $27 + call $~lib/rt/pure/__retain + i32.store + local.get $29 + local.get $27 + i32.store offset=4 + local.get $29 + local.get $28 + i32.store offset=8 + local.get $29 + call $~lib/rt/pure/__retain + local.set $1 + local.get $26 + call $~lib/rt/pure/__release + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 1 + i32.ne + br_if $folding-inner4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 4 + i32.ne + br_if $folding-inner5 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 9 + i32.ne + br_if $folding-inner6 + local.get $24 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $24 + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $26 + i32.load offset=8 + local.set $28 + local.get $26 + i32.load offset=4 + local.set $22 + i32.const 12 + i32.const 5 + call $~lib/rt/tlsf/__alloc + local.set $29 + local.get $28 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $27 + loop $for-loop|011 local.get $1 - i32.const 4 - f64.const 5 - call $~lib/typedarray/Float64Array#__set + local.get $28 + i32.lt_s + if + local.get $1 + local.get $22 + i32.add + i32.load8_u + local.set $25 + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $27 + i32.add + local.get $25 + local.get $25 + i32.mul + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|011 + end + end + local.get $29 + local.get $27 + call $~lib/rt/pure/__retain + i32.store + local.get $29 + local.get $27 + i32.store offset=4 + local.get $29 + local.get $28 + i32.store offset=8 + local.get $29 + call $~lib/rt/pure/__retain + local.set $1 + local.get $26 + call $~lib/rt/pure/__release + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.ne + br_if $folding-inner4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 4 + i32.ne + br_if $folding-inner5 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 9 + i32.ne + br_if $folding-inner6 + local.get $24 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $1 + call $~lib/typedarray/Int16Array#map + local.tee $0 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.ne + br_if $folding-inner4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 4 + i32.ne + br_if $folding-inner5 + local.get $0 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 9 + i32.ne + br_if $folding-inner6 + local.get $29 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + call $~lib/typedarray/Uint16Array#map + local.tee $0 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.ne + br_if $folding-inner4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 4 + i32.ne + br_if $folding-inner5 + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 9 + i32.ne + br_if $folding-inner6 + local.get $29 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + call $~lib/typedarray/Int32Array#map + local.tee $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + br_if $folding-inner4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 4 + i32.ne + br_if $folding-inner5 + local.get $0 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 9 + i32.ne + br_if $folding-inner6 + local.get $29 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + call $~lib/typedarray/Uint32Array#map + local.tee $0 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 1 + i32.ne + br_if $folding-inner4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 4 + i32.ne + br_if $folding-inner5 + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 9 + i32.ne + br_if $folding-inner6 + local.get $29 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $1 + call $~lib/typedarray/Int64Array#map + local.tee $0 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.ne + br_if $folding-inner4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 4 + i64.ne + br_if $folding-inner5 + local.get $0 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 9 + i64.ne + br_if $folding-inner6 + local.get $29 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + call $~lib/typedarray/Uint64Array#map + local.tee $0 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.ne + br_if $folding-inner4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.ne + br_if $folding-inner5 + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 9 + i64.ne + br_if $folding-inner6 + local.get $29 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $1 + call $~lib/typedarray/Float32Array#map + local.tee $0 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.ne + br_if $folding-inner4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 4 + f32.ne + br_if $folding-inner5 + local.get $0 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 9 + f32.ne + br_if $folding-inner6 + local.get $29 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $1 + call $~lib/typedarray/Float64Array#map + local.tee $0 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.ne + br_if $folding-inner4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.ne + br_if $folding-inner5 + local.get $0 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 9 + f64.ne + br_if $folding-inner6 + local.get $29 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 46 + call $~lib/typedarray/Int8Array#some + i32.eqz + br_if $folding-inner7 + local.get $1 + i32.const 47 + call $~lib/typedarray/Int8Array#some + br_if $folding-inner8 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 48 + call $~lib/typedarray/Uint8Array#some + i32.eqz + br_if $folding-inner7 + local.get $1 + i32.const 49 + call $~lib/typedarray/Uint8Array#some + br_if $folding-inner8 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 50 + call $~lib/typedarray/Uint8Array#some + i32.eqz + br_if $folding-inner7 + local.get $1 + i32.const 51 + call $~lib/typedarray/Uint8Array#some + br_if $folding-inner8 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 52 + call $~lib/typedarray/Int16Array#some + i32.eqz + br_if $folding-inner7 + local.get $1 + i32.const 53 + call $~lib/typedarray/Int16Array#some + br_if $folding-inner8 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 54 + call $~lib/typedarray/Uint16Array#some + i32.eqz + br_if $folding-inner7 + local.get $1 + i32.const 55 + call $~lib/typedarray/Uint16Array#some + br_if $folding-inner8 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 56 + call $~lib/typedarray/Int32Array#some + i32.eqz + br_if $folding-inner7 + local.get $1 + i32.const 57 + call $~lib/typedarray/Int32Array#some + br_if $folding-inner8 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 58 + call $~lib/typedarray/Int32Array#some + i32.eqz + br_if $folding-inner7 + local.get $1 + i32.const 59 + call $~lib/typedarray/Int32Array#some + br_if $folding-inner8 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 60 + call $~lib/typedarray/Int64Array#some + i32.eqz + br_if $folding-inner7 + local.get $1 + i32.const 61 + call $~lib/typedarray/Int64Array#some + br_if $folding-inner8 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 62 + call $~lib/typedarray/Int64Array#some + i32.eqz + br_if $folding-inner7 + local.get $1 + i32.const 63 + call $~lib/typedarray/Int64Array#some + br_if $folding-inner8 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 64 + call $~lib/typedarray/Float32Array#some + i32.eqz + br_if $folding-inner7 + local.get $1 + i32.const 65 + call $~lib/typedarray/Float32Array#some + br_if $folding-inner8 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 66 + call $~lib/typedarray/Float64Array#some + i32.eqz + br_if $folding-inner7 + local.get $1 + i32.const 67 + call $~lib/typedarray/Float64Array#some + br_if $folding-inner8 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 68 + call $~lib/typedarray/Int8Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner9 + local.get $1 + i32.const 69 + call $~lib/typedarray/Int8Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner10 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 70 + call $~lib/typedarray/Uint8Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner9 + local.get $1 + i32.const 71 + call $~lib/typedarray/Uint8Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner10 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 72 + call $~lib/typedarray/Uint8Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner9 + local.get $1 + i32.const 73 + call $~lib/typedarray/Uint8Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner10 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 74 + call $~lib/typedarray/Int16Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner9 + local.get $1 + i32.const 75 + call $~lib/typedarray/Int16Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner10 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 76 + call $~lib/typedarray/Uint16Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner9 + local.get $1 + i32.const 77 + call $~lib/typedarray/Uint16Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner10 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 78 + call $~lib/typedarray/Int32Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner9 + local.get $1 + i32.const 79 + call $~lib/typedarray/Int32Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner10 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 80 + call $~lib/typedarray/Int32Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner9 + local.get $1 + i32.const 81 + call $~lib/typedarray/Int32Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner10 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 82 + call $~lib/typedarray/Int64Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner9 + local.get $1 + i32.const 83 + call $~lib/typedarray/Int64Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner10 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 84 + call $~lib/typedarray/Int64Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner9 + local.get $1 + i32.const 85 + call $~lib/typedarray/Int64Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner10 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 86 + call $~lib/typedarray/Float32Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner9 + local.get $1 + i32.const 87 + call $~lib/typedarray/Float32Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner10 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 88 + call $~lib/typedarray/Float64Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner9 + local.get $1 + i32.const 89 + call $~lib/typedarray/Float64Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner10 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 90 + call $~lib/typedarray/Int8Array#every + i32.eqz + br_if $folding-inner11 + local.get $1 + i32.const 91 + call $~lib/typedarray/Int8Array#every + br_if $folding-inner12 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 92 + call $~lib/typedarray/Uint8Array#every + i32.eqz + br_if $folding-inner11 + local.get $1 + i32.const 93 + call $~lib/typedarray/Uint8Array#every + br_if $folding-inner12 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 94 + call $~lib/typedarray/Uint8Array#every + i32.eqz + br_if $folding-inner11 + local.get $1 + i32.const 95 + call $~lib/typedarray/Uint8Array#every + br_if $folding-inner12 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 96 + call $~lib/typedarray/Int16Array#every + i32.eqz + br_if $folding-inner11 + local.get $1 + i32.const 97 + call $~lib/typedarray/Int16Array#every + br_if $folding-inner12 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 98 + call $~lib/typedarray/Uint16Array#every + i32.eqz + br_if $folding-inner11 + local.get $1 + i32.const 99 + call $~lib/typedarray/Uint16Array#every + br_if $folding-inner12 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 100 + call $~lib/typedarray/Int32Array#every + i32.eqz + br_if $folding-inner11 + local.get $1 + i32.const 101 + call $~lib/typedarray/Int32Array#every + br_if $folding-inner12 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 102 + call $~lib/typedarray/Int32Array#every + i32.eqz + br_if $folding-inner11 + local.get $1 + i32.const 103 + call $~lib/typedarray/Int32Array#every + br_if $folding-inner12 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 104 + call $~lib/typedarray/Int64Array#every + i32.eqz + br_if $folding-inner11 + local.get $1 + i32.const 105 + call $~lib/typedarray/Int64Array#every + br_if $folding-inner12 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 106 + call $~lib/typedarray/Int64Array#every + i32.eqz + br_if $folding-inner11 + local.get $1 + i32.const 107 + call $~lib/typedarray/Int64Array#every + br_if $folding-inner12 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 108 + call $~lib/typedarray/Float32Array#every + i32.eqz + br_if $folding-inner11 + local.get $1 + i32.const 109 + call $~lib/typedarray/Float32Array#every + br_if $folding-inner12 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 110 + call $~lib/typedarray/Float64Array#every + i32.eqz + br_if $folding-inner11 + local.get $1 + i32.const 111 + call $~lib/typedarray/Float64Array#every + br_if $folding-inner12 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $28 + call $~lib/rt/pure/__retain + local.tee $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + i32.const 2704 + i32.const 0 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2704 + i32.const 1 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 2704 + i32.const 2 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $29 + i32.load offset=4 + local.set $27 + local.get $29 + i32.load offset=8 + local.set $26 + loop $for-loop|012 local.get $1 - call $~lib/typedarray/Float64Array#join - local.tee $0 - i32.const 4400 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner16 + local.get $26 + i32.lt_s + if + local.get $1 + local.get $27 + i32.add + i32.load8_s + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $29 + call $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|012 + end + end + local.get $29 + call $~lib/rt/pure/__release + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner13 + local.get $28 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + global.set $std/typedarray/forEachSelf + local.get $1 + i32.const 0 + i32.const 2704 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 2704 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 2704 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 113 + call $~lib/typedarray/Uint8Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner13 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + global.set $std/typedarray/forEachSelf + local.get $1 + i32.const 0 + i32.const 2704 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 2704 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 2704 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 114 + call $~lib/typedarray/Uint8Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner13 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $28 + call $~lib/rt/pure/__retain + local.tee $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + i32.const 2704 + i32.const 0 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2704 + i32.const 1 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 2704 + i32.const 2 + call $~lib/array/Array#__get + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + call $~lib/typedarray/Int16Array#__set + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $29 + i32.load offset=4 + local.set $27 + local.get $29 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $26 + loop $for-loop|013 local.get $1 - call $~lib/typedarray/Float64Array#join - local.tee $30 - i32.const 4400 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner17 - local.get $0 - call $~lib/rt/pure/__release - local.get $30 - call $~lib/rt/pure/__release + local.get $26 + i32.lt_s + if + local.get $27 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $29 + call $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|013 + end + end + local.get $29 + call $~lib/rt/pure/__release + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner13 + local.get $28 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $28 + call $~lib/rt/pure/__retain + local.tee $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + i32.const 2704 + i32.const 0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2704 + i32.const 1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 2704 + i32.const 2 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $29 + i32.load offset=4 + local.set $27 + local.get $29 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $26 + loop $for-loop|014 local.get $1 - call $~lib/rt/pure/__release - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - i32.const 2 - global.set $~argumentsLength + local.get $26 + i32.lt_s + if + local.get $27 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $29 + call $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|014 + end + end + local.get $29 + call $~lib/rt/pure/__release + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner13 + local.get $28 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + global.set $std/typedarray/forEachSelf + local.get $1 + i32.const 0 + i32.const 2704 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2704 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 2704 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 117 + call $~lib/typedarray/Int32Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner13 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + global.set $std/typedarray/forEachSelf + local.get $1 + i32.const 0 + i32.const 2704 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 2704 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 2704 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 118 + call $~lib/typedarray/Int32Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner13 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + global.set $std/typedarray/forEachSelf + local.get $1 + i32.const 0 + i32.const 2704 + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i32.const 2704 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i32.const 2704 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 119 + call $~lib/typedarray/Int64Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner13 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + global.set $std/typedarray/forEachSelf + local.get $1 + i32.const 0 + i32.const 2704 + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i32.const 2704 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i32.const 2704 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 120 + call $~lib/typedarray/Int64Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner13 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $28 + call $~lib/rt/pure/__retain + local.tee $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + i32.const 2704 + i32.const 0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + i32.const 2704 + i32.const 1 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + i32.const 2704 + i32.const 2 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $29 + i32.load offset=4 + local.set $27 + local.get $29 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $26 + loop $for-loop|015 local.get $1 - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $30 - i32.load offset=8 + local.get $26 + i32.lt_s if - i32.const 0 - i32.const 1312 - i32.const 691 + local.get $27 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load i32.const 3 - call $~lib/builtins/abort - unreachable + global.set $~argumentsLength + local.get $1 + local.get $29 + call $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|015 end - i32.const 2 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $0 - local.get $1 - call $~lib/rt/pure/__release - i32.const 2 - global.set $~argumentsLength - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.set $1 - local.get $30 - call $~lib/rt/pure/__release + end + local.get $29 + call $~lib/rt/pure/__release + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner13 + local.get $28 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $28 + call $~lib/rt/pure/__retain + local.tee $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + i32.const 2704 + i32.const 0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + i32.const 2704 + i32.const 1 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + i32.const 2704 + i32.const 2 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + i32.const 0 + local.set $1 + local.get $0 + call $~lib/rt/pure/__retain + local.tee $29 + i32.load offset=4 + local.set $27 + local.get $29 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $26 + loop $for-loop|016 local.get $1 - i32.load offset=8 + local.get $26 + i32.lt_s if - i32.const 0 - i32.const 1312 - i32.const 695 + local.get $27 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load i32.const 3 - call $~lib/builtins/abort - unreachable + global.set $~argumentsLength + local.get $1 + local.get $29 + call $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|016 end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - call $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> - i32.const 10 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.set $0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $30 - i32.const 0 - f32.const 400 - call $~lib/typedarray/Float32Array#__set - local.get $30 - i32.const 1 - f32.const nan:0x400000 - call $~lib/typedarray/Float32Array#__set - local.get $30 - i32.const 2 - f32.const inf - call $~lib/typedarray/Float32Array#__set - i32.const 4 - call $~lib/typedarray/Int64Array#constructor - local.tee $29 + end + local.get $29 + call $~lib/rt/pure/__release + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner13 + local.get $28 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + call $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> + i32.const 1 + call $~lib/typedarray/Float64Array#constructor + local.tee $29 + i32.const 0 + f64.const nan:0x8000000000000 + call $~lib/typedarray/Float64Array#__set + local.get $29 + f64.const nan:0x8000000000000 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if i32.const 0 - i64.const -10 - call $~lib/typedarray/Int64Array#__set - local.get $29 - i32.const 1 - i64.const 100 - call $~lib/typedarray/Int64Array#__set - local.get $29 - i32.const 2 - i64.const 10 - call $~lib/typedarray/Int64Array#__set - local.get $29 + i32.const 1312 + i32.const 607 i32.const 3 - i64.const 300 - call $~lib/typedarray/Int64Array#__set - i32.const 2 - call $~lib/typedarray/Int32Array#constructor - local.tee $28 - i32.const 0 - i32.const 300 - call $~lib/typedarray/Int32Array#__set - local.get $28 - i32.const 1 - i32.const -1 - call $~lib/typedarray/Int32Array#__set - i32.const 0 - local.set $1 - local.get $30 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $28 + block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=8 - i32.const 2 + i32.const 3 i32.shr_u - i32.const 1 - i32.add - local.get $0 - i32.load offset=8 - i32.gt_s - br_if $folding-inner19 + local.tee $27 + if (result i32) + i32.const 0 + local.get $27 + i32.ge_s + else + i32.const 1 + end + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + end local.get $0 i32.load offset=4 - i32.const 1 - i32.add - local.set $26 - local.get $30 - i32.load offset=4 local.set $25 - local.get $30 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $24 - loop $for-loop|026 + loop $while-continue|0 local.get $1 - local.get $24 + local.get $27 i32.lt_s if - local.get $1 - local.get $26 - i32.add local.get $25 local.get $1 - i32.const 2 + i32.const 3 i32.shl i32.add - f32.load - local.tee $22 - local.get $22 - f32.sub - f32.const 0 - f32.eq + f64.load + local.tee $23 + f64.const nan:0x8000000000000 + f64.eq if (result i32) - f32.const 0 - f32.const 255 - local.get $22 - f32.min - f32.max - i32.trunc_f32_u + i32.const 1 else - i32.const 0 + local.get $23 + local.get $23 + f64.ne + end + if + local.get $0 + call $~lib/rt/pure/__release + i32.const 1 + local.set $28 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 end - i32.store8 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|026 + br $while-continue|0 end end local.get $0 - local.get $29 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + call $~lib/rt/pure/__release + end + local.get $28 + i32.const 0 + i32.ne + i32.const 1 + i32.ne + if i32.const 0 - local.set $1 - local.get $28 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 8 - i32.add - local.get $0 - i32.load offset=8 - i32.gt_s - br_if $folding-inner19 - local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - local.set $26 - local.get $28 - i32.load offset=4 - local.set $25 + i32.const 1312 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $~lib/typedarray/Float32Array#constructor + local.tee $28 + i32.const 0 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set + local.get $28 + f32.const nan:0x400000 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1312 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $27 + block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $28 + call $~lib/rt/pure/__retain + local.tee $0 i32.load offset=8 i32.const 2 i32.shr_u + local.tee $26 + if (result i32) + i32.const 0 + local.get $26 + i32.ge_s + else + i32.const 1 + end + if + local.get $0 + call $~lib/rt/pure/__release + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + end + local.get $0 + i32.load offset=4 local.set $24 - loop $for-loop|027 + loop $while-continue|017 local.get $1 - local.get $24 + local.get $26 i32.lt_s if - local.get $1 - local.get $26 - i32.add - local.get $25 + local.get $24 local.get $1 i32.const 2 i32.shl i32.add - i32.load - local.tee $27 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - local.get $27 - i32.const 255 - local.get $27 - i32.sub - i32.const 31 - i32.shr_s - i32.or - i32.and - i32.store8 + f32.load + local.tee $21 + f32.const nan:0x400000 + f32.eq + if (result i32) + i32.const 1 + else + local.get $21 + local.get $21 + f32.ne + end + if + local.get $0 + call $~lib/rt/pure/__release + i32.const 1 + local.set $27 + br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + end local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|027 + br $while-continue|017 end end local.get $0 - i32.const 10 + call $~lib/rt/pure/__release + end + local.get $27 + i32.const 0 + i32.ne + i32.const 1 + i32.ne + if i32.const 0 - i32.const 18 - i32.const 8576 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $25 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - i32.const 4 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 + i32.const 1312 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $29 + call $~lib/rt/pure/__release + local.get $28 + call $~lib/rt/pure/__release + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $1 + call $~lib/typedarray/Int8Array#join + local.tee $29 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner0 + local.get $1 + call $~lib/typedarray/Int8Array#join + local.tee $28 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner18 + local.get $29 + 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 + i32.const 5 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + call $~lib/typedarray/Uint8Array#join + local.tee $29 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner0 + local.get $1 + call $~lib/typedarray/Uint8Array#join + local.tee $28 + local.get $28 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner18 + local.get $29 + call $~lib/rt/pure/__release + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + call $~lib/typedarray/Uint8Array#join + local.tee $29 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner0 + local.get $1 + call $~lib/typedarray/Uint8Array#join + local.tee $28 + local.get $28 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner18 + local.get $29 + call $~lib/rt/pure/__release + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 5 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int16Array#__set + local.get $1 + call $~lib/typedarray/Int16Array#join + local.tee $29 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner0 + local.get $1 + call $~lib/typedarray/Int16Array#join + local.tee $28 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner18 + local.get $29 + 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 + i32.const 5 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + call $~lib/typedarray/Uint16Array#join + local.tee $29 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner0 + local.get $1 + call $~lib/typedarray/Uint16Array#join + local.tee $28 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner18 + local.get $29 + 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 + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + local.get $1 + call $~lib/typedarray/Int32Array#join + local.tee $29 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner0 + local.get $1 + call $~lib/typedarray/Int32Array#join + local.tee $28 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner18 + local.get $29 + 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 + i32.const 5 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + call $~lib/typedarray/Uint32Array#join + local.tee $29 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner0 + local.get $1 + call $~lib/typedarray/Uint32Array#join + local.tee $28 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner18 + local.get $29 + 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 + i32.const 5 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Int64Array#__set + local.get $1 + call $~lib/typedarray/Int64Array#join + local.tee $29 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner0 + local.get $1 + call $~lib/typedarray/Int64Array#join + local.tee $28 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner18 + local.get $29 + 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 + i32.const 5 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + call $~lib/typedarray/Uint64Array#join + local.tee $29 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner0 + local.get $1 + call $~lib/typedarray/Uint64Array#join + local.tee $28 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner18 + local.get $29 + 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 + i32.const 5 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 3 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 4 + f32.const 5 + call $~lib/typedarray/Float32Array#__set + local.get $1 + call $~lib/typedarray/Float32Array#join + local.tee $29 + i32.const 4400 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner16 + local.get $1 + call $~lib/typedarray/Float32Array#join + local.tee $28 + i32.const 4400 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner17 + local.get $29 + 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 + i32.const 5 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 3 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + local.get $1 + call $~lib/typedarray/Float64Array#join + local.tee $29 + i32.const 4400 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner16 + local.get $1 + call $~lib/typedarray/Float64Array#join + local.tee $28 + i32.const 4400 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner17 + local.get $29 + 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 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $29 + i32.load offset=8 + if i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 300 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 100 - call $~lib/typedarray/Uint32Array#__set - local.get $1 + i32.const 1312 + i32.const 691 i32.const 3 - i32.const -1 - call $~lib/typedarray/Uint32Array#__set - i32.const 4 - call $~lib/typedarray/Int16Array#constructor - local.tee $27 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $0 + local.get $1 + call $~lib/rt/pure/__release + i32.const 2 + global.set $~argumentsLength + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.set $1 + local.get $29 + call $~lib/rt/pure/__release + local.get $1 + i32.load offset=8 + if i32.const 0 - i32.const -10 - call $~lib/typedarray/Int16Array#__set - local.get $27 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int16Array#__set - local.get $27 - i32.const 2 - i32.const 10 - call $~lib/typedarray/Int16Array#__set - local.get $27 + i32.const 1312 + i32.const 695 i32.const 3 - i32.const 300 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - local.set $26 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.get $0 - i32.load offset=8 - i32.gt_s - br_if $folding-inner19 - local.get $0 - i32.load offset=4 - local.set $24 - local.get $1 - i32.load offset=4 - local.set $19 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $18 - loop $for-loop|028 - local.get $26 - local.get $18 - i32.lt_s - if - local.get $24 - local.get $26 - i32.add - i32.const 255 - local.get $19 - local.get $26 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $17 - i32.const 255 - local.get $17 - i32.lt_u - select - i32.store8 - local.get $26 - i32.const 1 - i32.add - local.set $26 - br $for-loop|028 - end - end - local.get $0 - local.get $27 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> - local.get $0 - i32.const 10 - i32.const 0 - i32.const 18 - i32.const 8608 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $26 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $0 - call $~lib/rt/pure/__release - local.get $30 - call $~lib/rt/pure/__release - local.get $29 - call $~lib/rt/pure/__release - local.get $28 - call $~lib/rt/pure/__release - local.get $25 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $27 - call $~lib/rt/pure/__release - local.get $26 - call $~lib/rt/pure/__release - return + call $~lib/builtins/abort + unreachable end - br $folding-inner3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + call $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.set $1 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $27 + i32.const 0 + f32.const 400 + call $~lib/typedarray/Float32Array#__set + local.get $27 + i32.const 1 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set + local.get $27 + i32.const 2 + f32.const inf + call $~lib/typedarray/Float32Array#__set + i32.const 4 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.const 0 + i64.const -10 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 100 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 10 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 3 + i64.const 300 + call $~lib/typedarray/Int64Array#__set + i32.const 2 + call $~lib/typedarray/Int32Array#constructor + local.tee $26 + i32.const 0 + i32.const 300 + call $~lib/typedarray/Int32Array#__set + local.get $26 + i32.const 1 + i32.const -1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + local.get $27 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> + local.get $1 + local.get $0 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + local.get $1 + local.get $26 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> + local.get $1 + i32.const 10 + i32.const 0 + i32.const 18 + i32.const 8576 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $25 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + i32.const 4 + call $~lib/typedarray/Uint32Array#constructor + local.tee $29 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $29 + i32.const 1 + i32.const 300 + call $~lib/typedarray/Uint32Array#__set + local.get $29 + i32.const 2 + i32.const 100 + call $~lib/typedarray/Uint32Array#__set + local.get $29 + i32.const 3 + i32.const -1 + call $~lib/typedarray/Uint32Array#__set + i32.const 4 + call $~lib/typedarray/Int16Array#constructor + local.tee $28 + i32.const 0 + i32.const -10 + call $~lib/typedarray/Int16Array#__set + local.get $28 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int16Array#__set + local.get $28 + i32.const 2 + i32.const 10 + call $~lib/typedarray/Int16Array#__set + local.get $28 + i32.const 3 + i32.const 300 + call $~lib/typedarray/Int16Array#__set + local.get $1 + local.get $29 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint32Array> + local.get $1 + local.get $28 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + local.get $1 + i32.const 10 + i32.const 0 + i32.const 18 + i32.const 8608 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $24 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.get $1 + call $~lib/rt/pure/__release + local.get $27 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $26 + call $~lib/rt/pure/__release + local.get $25 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + local.get $28 + call $~lib/rt/pure/__release + local.get $24 + call $~lib/rt/pure/__release + return end - i32.const 0 - i32.const 1312 - i32.const 323 - i32.const 3 - call $~lib/builtins/abort - unreachable + br $folding-inner3 end i32.const 0 i32.const 1312 - i32.const 344 + i32.const 323 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 365 + i32.const 344 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 366 + i32.const 365 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 367 + i32.const 366 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 415 + i32.const 367 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 417 + i32.const 415 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 438 + i32.const 417 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 440 + i32.const 438 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 461 + i32.const 440 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 463 + i32.const 461 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 495 + i32.const 463 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 626 - i32.const 5 + i32.const 495 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 627 + i32.const 626 i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 629 + i32.const 627 i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 630 + i32.const 629 i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1376 - i32.const 1440 - i32.const 1775 - i32.const 47 + i32.const 0 + i32.const 1312 + i32.const 630 + i32.const 5 call $~lib/builtins/abort unreachable )