From 73824289a89f2d43d84f974ffe130f5466adf072 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sun, 27 Sep 2020 11:59:10 +0300 Subject: [PATCH] improve inlining thresholds for default optimization --- src/module.ts | 4 +- tests/compiler/assert-nonnull.optimized.wat | 16 +- tests/compiler/binary.optimized.wat | 54 +- tests/compiler/builtins.optimized.wat | 22 +- tests/compiler/call-optional.optimized.wat | 26 +- tests/compiler/class-implements.optimized.wat | 4 +- .../compiler/class-overloading.optimized.wat | 44 +- tests/compiler/do.optimized.wat | 49 +- .../extends-baseaggregate.optimized.wat | 28 +- .../field-initialization.optimized.wat | 22 +- tests/compiler/for.optimized.wat | 179 +- .../function-expression.optimized.wat | 24 +- tests/compiler/function-types.optimized.wat | 20 +- tests/compiler/if.optimized.wat | 26 - .../implicit-getter-setter.optimized.wat | 10 +- tests/compiler/infer-array.optimized.wat | 18 +- tests/compiler/infer-generic.optimized.wat | 17 +- tests/compiler/logical.optimized.wat | 33 +- tests/compiler/managed-cast.optimized.wat | 17 +- tests/compiler/many-locals.optimized.wat | 18 - tests/compiler/number.optimized.wat | 68 +- tests/compiler/object-literal.optimized.wat | 272 +- .../rc/logical-and-mismatch.optimized.wat | 39 +- .../rc/logical-or-mismatch.optimized.wat | 39 +- tests/compiler/rc/optimize.optimized.wat | 333 +- tests/compiler/rc/rereturn.optimized.wat | 12 +- .../rc/ternary-mismatch.optimized.wat | 27 +- tests/compiler/resolve-access.optimized.wat | 35 +- tests/compiler/resolve-binary.optimized.wat | 168 +- .../resolve-elementaccess.optimized.wat | 244 +- .../resolve-function-expression.optimized.wat | 76 +- .../resolve-propertyaccess.optimized.wat | 55 +- tests/compiler/resolve-ternary.optimized.wat | 77 +- tests/compiler/resolve-unary.optimized.wat | 55 +- .../retain-release-sanity.optimized.wat | 99 +- tests/compiler/retain-return.optimized.wat | 31 +- tests/compiler/rt/finalize.optimized.wat | 70 +- tests/compiler/rt/instanceof.optimized.wat | 25 +- tests/compiler/std/array-access.optimized.wat | 44 +- .../compiler/std/array-literal.optimized.wat | 73 +- tests/compiler/std/array.optimized.wat | 2548 +++++---- tests/compiler/std/arraybuffer.optimized.wat | 55 +- tests/compiler/std/dataview.optimized.wat | 47 +- tests/compiler/std/map.optimized.wat | 3125 +++++------ tests/compiler/std/math.optimized.wat | 4761 +++++++++++------ tests/compiler/std/object.optimized.wat | 82 +- .../std/operator-overloading.optimized.wat | 12 +- tests/compiler/std/set.optimized.wat | 2978 ++++++----- tests/compiler/std/staticarray.optimized.wat | 87 +- .../std/string-casemapping.optimized.wat | 392 +- .../std/string-encoding.optimized.wat | 64 +- tests/compiler/std/string.optimized.wat | 2489 +++++---- tests/compiler/std/symbol.optimized.wat | 208 +- tests/compiler/std/typedarray.optimized.wat | 1354 +++-- tests/compiler/super-inline.optimized.wat | 25 +- tests/compiler/typeof.optimized.wat | 21 +- tests/compiler/wasi/abort.optimized.wat | 50 +- tests/compiler/wasi/trace.optimized.wat | 113 +- tests/compiler/while.optimized.wat | 65 +- 59 files changed, 11868 insertions(+), 9081 deletions(-) diff --git a/src/module.ts b/src/module.ts index a265f28b20..f47b0b62e6 100644 --- a/src/module.ts +++ b/src/module.ts @@ -1487,9 +1487,9 @@ export class Module { this.setAllowInliningFunctionsWithLoops(optimizeLevel >= 3); } else { this.setAlwaysInlineMaxSize( - optimizeLevel == 0 && shrinkLevel >= 0 + optimizeLevel <= 1 || shrinkLevel >= 2 ? 2 - : 4 + : 6 ); this.setFlexibleInlineMaxSize(65); this.setOneCallerInlineMaxSize(80); diff --git a/tests/compiler/assert-nonnull.optimized.wat b/tests/compiler/assert-nonnull.optimized.wat index cf2ed16137..288016c276 100644 --- a/tests/compiler/assert-nonnull.optimized.wat +++ b/tests/compiler/assert-nonnull.optimized.wat @@ -139,9 +139,10 @@ (local $1 i32) block $folding-inner0 local.get $0 + local.tee $1 i32.eqz br_if $folding-inner0 - local.get $0 + local.get $1 call $~lib/array/Array#__get local.tee $0 local.get $0 @@ -165,9 +166,10 @@ (local $1 i32) block $folding-inner0 local.get $0 + local.tee $1 i32.eqz br_if $folding-inner0 - local.get $0 + local.get $1 call $~lib/array/Array#__get local.tee $0 local.get $0 @@ -208,12 +210,10 @@ call_indirect (type $none_=>_i32) ) (func $assert-nonnull/testRet (param $0 i32) (result i32) - (local $1 i32) local.get $0 i32.load call_indirect (type $none_=>_i32) - local.tee $1 - local.get $1 + local.tee $0 i32.eqz if i32.const 1040 @@ -223,6 +223,7 @@ call $~lib/builtins/abort unreachable end + local.get $0 ) (func $assert-nonnull/testObjFn (param $0 i32) (result i32) local.get $0 @@ -231,13 +232,11 @@ call_indirect (type $none_=>_i32) ) (func $assert-nonnull/testObjRet (param $0 i32) (result i32) - (local $1 i32) local.get $0 i32.load offset=4 i32.load call_indirect (type $none_=>_i32) - local.tee $1 - local.get $1 + local.tee $0 i32.eqz if i32.const 1040 @@ -247,5 +246,6 @@ call $~lib/builtins/abort unreachable end + local.get $0 ) ) diff --git a/tests/compiler/binary.optimized.wat b/tests/compiler/binary.optimized.wat index 818d1ff040..fedaffe9fa 100644 --- a/tests/compiler/binary.optimized.wat +++ b/tests/compiler/binary.optimized.wat @@ -1,8 +1,6 @@ (module (type $none_=>_none (func)) (type $i32_=>_i32 (func (param i32) (result i32))) - (type $f32_=>_f32 (func (param f32) (result f32))) - (type $f64_=>_f64 (func (param f64) (result f64))) (memory $0 0) (global $binary/i (mut i32) (i32.const 0)) (global $binary/I (mut i64) (i64.const 0)) @@ -42,23 +40,9 @@ end local.get $2 ) - (func $~lib/math/NativeMathf.mod (param $0 f32) (result f32) - local.get $0 - local.get $0 - f32.trunc - f32.sub - local.get $0 - f32.copysign - ) - (func $~lib/math/NativeMath.mod (param $0 f64) (result f64) - local.get $0 - local.get $0 - f64.trunc - f64.sub - local.get $0 - f64.copysign - ) (func $start:binary + (local $0 f32) + (local $1 f64) global.get $binary/i call $~lib/math/ipow32 drop @@ -174,9 +158,6 @@ i64.const 0 global.set $binary/I global.get $binary/f - call $~lib/math/NativeMathf.mod - drop - global.get $binary/f f32.const 1 f32.add global.set $binary/f @@ -185,7 +166,12 @@ f32.sub global.set $binary/f global.get $binary/f - call $~lib/math/NativeMathf.mod + local.tee $0 + local.get $0 + f32.trunc + f32.sub + local.get $0 + f32.copysign global.set $binary/f global.get $binary/f f32.const 1 @@ -196,12 +182,14 @@ f32.sub global.set $binary/f global.get $binary/f - call $~lib/math/NativeMathf.mod + local.tee $0 + local.get $0 + f32.trunc + f32.sub + local.get $0 + f32.copysign global.set $binary/f global.get $binary/F - call $~lib/math/NativeMath.mod - drop - global.get $binary/F f64.const 1 f64.add global.set $binary/F @@ -210,7 +198,12 @@ f64.sub global.set $binary/F global.get $binary/F - call $~lib/math/NativeMath.mod + local.tee $1 + local.get $1 + f64.trunc + f64.sub + local.get $1 + f64.copysign global.set $binary/F global.get $binary/F f64.const 1 @@ -221,7 +214,12 @@ f64.sub global.set $binary/F global.get $binary/F - call $~lib/math/NativeMath.mod + local.tee $1 + local.get $1 + f64.trunc + f64.sub + local.get $1 + f64.copysign global.set $binary/F ) (func $~start diff --git a/tests/compiler/builtins.optimized.wat b/tests/compiler/builtins.optimized.wat index 1067470f8e..a1620446ab 100644 --- a/tests/compiler/builtins.optimized.wat +++ b/tests/compiler/builtins.optimized.wat @@ -2,8 +2,8 @@ (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_none (func)) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) @@ -49,14 +49,6 @@ local.get $1 i32.add ) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.const 1 - i32.shr_u - ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -150,10 +142,18 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 local.get $0 diff --git a/tests/compiler/call-optional.optimized.wat b/tests/compiler/call-optional.optimized.wat index fa906406bf..252cd39c34 100644 --- a/tests/compiler/call-optional.optimized.wat +++ b/tests/compiler/call-optional.optimized.wat @@ -11,13 +11,6 @@ (global $~argumentsLength (mut i32) (i32.const 0)) (export "memory" (memory $0)) (start $~start) - (func $call-optional/opt (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $2 - local.get $0 - local.get $1 - i32.add - i32.add - ) (func $call-optional/opt@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 block $1of2 @@ -36,10 +29,11 @@ i32.const -2 local.set $2 end + local.get $2 local.get $0 local.get $1 - local.get $2 - call $call-optional/opt + i32.add + i32.add ) (func $start:call-optional i32.const 1 @@ -72,20 +66,6 @@ call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 4 - i32.const 5 - call $call-optional/opt - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1040 - i32.const 6 - i32.const 1 - call $~lib/builtins/abort - unreachable - end i32.const 1 global.set $~argumentsLength i32.const 3 diff --git a/tests/compiler/class-implements.optimized.wat b/tests/compiler/class-implements.optimized.wat index 28eafbd5a4..bf118c6be1 100644 --- a/tests/compiler/class-implements.optimized.wat +++ b/tests/compiler/class-implements.optimized.wat @@ -97,8 +97,8 @@ (func $~start i32.const 1088 global.set $~lib/rt/stub/offset - i32.const 0 - call $class-implements/A#constructor + i32.const 3 + call $~lib/rt/stub/__alloc drop i32.const 5 call $~lib/rt/stub/__alloc diff --git a/tests/compiler/class-overloading.optimized.wat b/tests/compiler/class-overloading.optimized.wat index 9f337184e4..44cf9065d4 100644 --- a/tests/compiler/class-overloading.optimized.wat +++ b/tests/compiler/class-overloading.optimized.wat @@ -1,7 +1,7 @@ (module - (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_none (func)) (type $i32_=>_none (func (param i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) @@ -105,14 +105,6 @@ call $~lib/rt/stub/__alloc end ) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.const 1 - i32.shr_u - ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -206,10 +198,18 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 local.get $0 @@ -239,25 +239,22 @@ i32.const 1184 global.set $class-overloading/which ) - (func $class-overloading/D#constructor (param $0 i32) (result i32) + (func $class-overloading/E#constructor (param $0 i32) (result i32) local.get $0 - if (result i32) - local.get $0 - else - i32.const 6 + i32.eqz + if + i32.const 7 call $~lib/rt/stub/__alloc + local.set $0 end - call $class-overloading/B#constructor - ) - (func $class-overloading/E#constructor (param $0 i32) (result i32) local.get $0 if (result i32) local.get $0 else - i32.const 7 + i32.const 6 call $~lib/rt/stub/__alloc end - call $class-overloading/D#constructor + call $class-overloading/B#constructor ) (func $start:class-overloading i32.const 1296 @@ -392,8 +389,9 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - call $class-overloading/D#constructor + i32.const 6 + call $~lib/rt/stub/__alloc + call $class-overloading/B#constructor global.set $class-overloading/a i32.const 1040 global.set $class-overloading/which diff --git a/tests/compiler/do.optimized.wat b/tests/compiler/do.optimized.wat index 565621a65f..4bd4502825 100644 --- a/tests/compiler/do.optimized.wat +++ b/tests/compiler/do.optimized.wat @@ -1,11 +1,11 @@ (module (type $i32_=>_none (func (param i32))) (type $none_=>_none (func)) - (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) @@ -975,22 +975,17 @@ call $~lib/rt/rtrace/onalloc local.get $1 ) - (func $do/Ref#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 1216 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 @@ -1009,14 +1004,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 @@ -1029,7 +1024,7 @@ unreachable end end - local.get $1 + local.get $0 ) (func $~lib/rt/pure/__release (param $0 i32) local.get $0 @@ -1260,7 +1255,11 @@ global.set $do/ran i32.const 0 global.set $do/ran - call $do/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain local.set $1 loop $do-continue|05 local.get $2 @@ -1278,7 +1277,11 @@ call $~lib/rt/pure/__release end else - call $do/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain local.set $0 local.get $1 call $~lib/rt/pure/__release @@ -1325,7 +1328,11 @@ global.set $do/ran i32.const 0 local.set $2 - call $do/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain local.set $1 loop $do-continue|06 block $do-break|0 @@ -1345,7 +1352,11 @@ local.set $1 br $do-break|0 end - call $do/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain local.tee $0 call $~lib/rt/pure/__release local.get $0 diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index a67611b82c..05f15a81fe 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -4,10 +4,10 @@ (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_none (func)) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 1028) "\01") @@ -1038,14 +1038,6 @@ call $~lib/rt/tlsf/prepareBlock local.get $3 ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) (func $~lib/rt/pure/__retain (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -1678,16 +1670,22 @@ ) (func $~start (local $0 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 20 i32.const 6 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $0 i32.eqz if + call $~lib/rt/tlsf/maybeInitialize i32.const 20 i32.const 4 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $0 end @@ -2045,9 +2043,13 @@ i32.const 256 i32.gt_u select - local.tee $4 + local.set $4 + call $~lib/rt/tlsf/maybeInitialize + local.get $4 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $1 local.get $3 diff --git a/tests/compiler/field-initialization.optimized.wat b/tests/compiler/field-initialization.optimized.wat index 6f20599bb8..96776c025a 100644 --- a/tests/compiler/field-initialization.optimized.wat +++ b/tests/compiler/field-initialization.optimized.wat @@ -1,6 +1,6 @@ (module - (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_none (func)) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) @@ -135,14 +135,6 @@ i32.store offset=4 local.get $0 ) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.const 1 - i32.shr_u - ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -236,10 +228,18 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 local.get $0 diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index 8680bc669c..b66e43bdbe 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -1,11 +1,11 @@ (module (type $i32_=>_none (func (param i32))) (type $none_=>_none (func)) - (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) @@ -972,22 +972,17 @@ call $~lib/rt/rtrace/onalloc local.get $1 ) - (func $for/Ref#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 1216 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 @@ -1006,14 +1001,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 @@ -1026,7 +1021,7 @@ unreachable end end - local.get $1 + local.get $0 ) (func $~lib/rt/pure/__release (param $0 i32) local.get $0 @@ -1039,6 +1034,86 @@ call $~lib/rt/pure/decrement end ) + (func $for/testRefAutorelease + (local $0 i32) + (local $1 i32) + (local $2 i32) + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + 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 + loop $for-loop|0 + block $for-break0 + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain + local.tee $0 + call $~lib/rt/pure/__release + local.get $0 + if + local.get $2 + i32.const 1 + i32.add + local.tee $2 + i32.const 10 + i32.eq + if + local.get $1 + if + local.get $1 + call $~lib/rt/pure/__release + end + i32.const 0 + local.set $1 + br $for-break0 + end + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain + local.get $1 + call $~lib/rt/pure/__release + local.set $1 + br $for-loop|0 + end + end + end + local.get $2 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1040 + i32.const 157 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + if + i32.const 0 + i32.const 1040 + i32.const 158 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $for/ran + local.get $1 + call $~lib/rt/pure/__release + ) (func $start:for (local $0 i32) (local $1 i32) @@ -1259,7 +1334,11 @@ end i32.const 0 global.set $for/ran - call $for/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain local.set $0 loop $for-loop|06 local.get $0 @@ -1279,7 +1358,11 @@ call $~lib/rt/pure/__release end else - call $for/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain local.set $1 local.get $0 call $~lib/rt/pure/__release @@ -1325,67 +1408,7 @@ end i32.const 0 global.set $for/ran - i32.const 0 - local.set $2 - call $for/Ref#constructor - call $for/Ref#constructor - local.set $0 - call $~lib/rt/pure/__release - loop $for-loop|07 - block $for-break0 - call $for/Ref#constructor - local.tee $1 - call $~lib/rt/pure/__release - local.get $1 - if - local.get $2 - i32.const 1 - i32.add - local.tee $2 - i32.const 10 - i32.eq - if - local.get $0 - if - local.get $0 - call $~lib/rt/pure/__release - end - i32.const 0 - local.set $0 - br $for-break0 - end - call $for/Ref#constructor - local.get $0 - call $~lib/rt/pure/__release - local.set $0 - br $for-loop|07 - end - end - end - local.get $2 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1040 - i32.const 157 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - if - i32.const 0 - i32.const 1040 - i32.const 158 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $for/ran - local.get $0 - call $~lib/rt/pure/__release + call $for/testRefAutorelease global.get $for/ran i32.eqz if diff --git a/tests/compiler/function-expression.optimized.wat b/tests/compiler/function-expression.optimized.wat index 9384556cdd..ce9eb51210 100644 --- a/tests/compiler/function-expression.optimized.wat +++ b/tests/compiler/function-expression.optimized.wat @@ -1,7 +1,7 @@ (module + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_none (func)) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -42,13 +42,6 @@ local.get $1 i32.add ) - (func $function-expression/testOmitted (param $0 i32) (result i32) - i32.const 1 - i32.const 2 - local.get $0 - i32.load - call_indirect (type $i32_i32_=>_i32) - ) (func $start:function-expression~anonymous|4 (param $0 i32) (param $1 i32) (result i32) local.get $0 ) @@ -116,8 +109,11 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 2 i32.const 1232 - call $function-expression/testOmitted + i32.load + call_indirect (type $i32_i32_=>_i32) i32.const 3 i32.ne if @@ -128,8 +124,11 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 2 i32.const 1264 - call $function-expression/testOmitted + i32.load + call_indirect (type $i32_i32_=>_i32) i32.const 1 i32.ne if @@ -140,8 +139,11 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 2 i32.const 1296 - call $function-expression/testOmitted + i32.load + call_indirect (type $i32_i32_=>_i32) i32.const 42 i32.ne if diff --git a/tests/compiler/function-types.optimized.wat b/tests/compiler/function-types.optimized.wat index 7f9d073b3f..a9893809e9 100644 --- a/tests/compiler/function-types.optimized.wat +++ b/tests/compiler/function-types.optimized.wat @@ -4,7 +4,6 @@ (type $i64_i64_=>_i64 (func (param i64 i64) (result i64))) (type $f64_f64_=>_f64 (func (param f64 f64) (result f64))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 1024) "\08\00\00\00\01\00\00\00\03\00\00\00\08\00\00\00\01") @@ -32,13 +31,6 @@ local.get $1 f64.add ) - (func $function-types/doAddWithFn (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - local.get $1 - local.get $2 - i32.load - call_indirect (type $i32_i32_=>_i32) - ) (func $start:function-types i32.const 1040 global.set $function-types/i32Adder @@ -90,7 +82,8 @@ i32.const 2 i32.const 3 global.get $function-types/i32Adder - call $function-types/doAddWithFn + i32.load + call_indirect (type $i32_i32_=>_i32) i32.const 5 i32.ne if @@ -119,7 +112,8 @@ i32.const 4 i32.const 5 i32.const 1200 - call $function-types/doAddWithFn + i32.load + call_indirect (type $i32_i32_=>_i32) i32.const 9 i32.ne if @@ -133,7 +127,8 @@ i32.const 1 i32.const 2 i32.const 1040 - call $function-types/doAddWithFn + i32.load + call_indirect (type $i32_i32_=>_i32) i32.const 3 i32.ne if @@ -147,7 +142,8 @@ i32.const 1 i32.const 2 i32.const 1040 - call $function-types/doAddWithFn + i32.load + call_indirect (type $i32_i32_=>_i32) i32.const 3 i32.ne if diff --git a/tests/compiler/if.optimized.wat b/tests/compiler/if.optimized.wat index 313c758fd6..66ba1f1d45 100644 --- a/tests/compiler/if.optimized.wat +++ b/tests/compiler/if.optimized.wat @@ -1,6 +1,5 @@ (module (type $i32_=>_i32 (func (param i32) (result i32))) - (type $none_=>_none (func)) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) @@ -11,7 +10,6 @@ (export "ifThen" (func $if/ifThen)) (export "ifThenElseBlock" (func $if/ifThenElse)) (export "ifAlwaysReturns" (func $if/ifAlwaysReturns)) - (start $~start) (func $if/ifThenElse (param $0 i32) (result i32) local.get $0 i32.eqz @@ -38,28 +36,4 @@ end i32.const 1 ) - (func $~start - i32.const 0 - call $if/ifThen - if - i32.const 0 - i32.const 1040 - i32.const 17 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - call $if/ifThen - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1040 - i32.const 18 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) ) diff --git a/tests/compiler/implicit-getter-setter.optimized.wat b/tests/compiler/implicit-getter-setter.optimized.wat index 9c33c3adf4..b965db08db 100644 --- a/tests/compiler/implicit-getter-setter.optimized.wat +++ b/tests/compiler/implicit-getter-setter.optimized.wat @@ -1116,9 +1116,12 @@ local.get $0 i32.eqz if + call $~lib/rt/tlsf/maybeInitialize i32.const 4 i32.const 3 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $0 end @@ -1140,9 +1143,12 @@ local.get $0 i32.eqz if + call $~lib/rt/tlsf/maybeInitialize i32.const 4 i32.const 4 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $0 end diff --git a/tests/compiler/infer-array.optimized.wat b/tests/compiler/infer-array.optimized.wat index ebe9642e9f..ddcc193399 100644 --- a/tests/compiler/infer-array.optimized.wat +++ b/tests/compiler/infer-array.optimized.wat @@ -291,31 +291,31 @@ i32.const 16 local.get $2 call $~lib/rt/stub/__alloc - local.set $2 + local.tee $2 local.get $0 local.get $1 i32.shl - local.tee $4 + local.tee $1 local.set $5 - local.get $4 + local.get $1 i32.const 0 call $~lib/rt/stub/__alloc - local.set $1 + local.set $4 local.get $3 if - local.get $1 + local.get $4 local.get $3 local.get $5 call $~lib/memory/memory.copy end - local.get $2 - local.get $1 + local.get $4 + local.tee $3 i32.store local.get $2 - local.get $1 + local.get $3 i32.store offset=4 local.get $2 - local.get $4 + local.get $1 i32.store offset=8 local.get $2 local.get $0 diff --git a/tests/compiler/infer-generic.optimized.wat b/tests/compiler/infer-generic.optimized.wat index ce07f87f18..a536b251d4 100644 --- a/tests/compiler/infer-generic.optimized.wat +++ b/tests/compiler/infer-generic.optimized.wat @@ -35,25 +35,22 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) i32.const 1132 i32.load - local.set $1 + local.set $2 loop $for-loop|0 - local.get $1 + local.get $0 + local.get $2 i32.const 1132 i32.load - local.tee $2 - i32.lt_s - local.set $3 - local.get $0 - local.get $1 + local.tee $3 local.get $2 local.get $3 + i32.lt_s select i32.lt_s if - local.get $4 + local.get $1 i32.const 1124 i32.load local.get $0 @@ -66,7 +63,7 @@ i32.const 1152 i32.load call_indirect (type $i32_f32_i32_i32_=>_i32) - local.set $4 + local.set $1 local.get $0 i32.const 1 i32.add diff --git a/tests/compiler/logical.optimized.wat b/tests/compiler/logical.optimized.wat index ce3a0a2d5d..2837369461 100644 --- a/tests/compiler/logical.optimized.wat +++ b/tests/compiler/logical.optimized.wat @@ -2,10 +2,10 @@ (type $i32_=>_none (func (param i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) @@ -941,13 +941,6 @@ end 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 i32.const 1232 @@ -963,8 +956,13 @@ (local $0 i32) (local $1 i32) (local $2 i32) - call $logical/Obj#constructor - local.tee $1 + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain + local.tee $0 + local.get $0 call $~lib/rt/pure/__retain local.tee $0 call $~lib/rt/pure/__release @@ -978,12 +976,18 @@ call $~lib/builtins/abort unreachable end - call $logical/Obj#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain local.tee $0 + local.set $2 + local.get $0 call $~lib/rt/pure/__retain - local.tee $2 + local.tee $0 call $~lib/rt/pure/__release - local.get $2 + local.get $0 i32.eqz if i32.const 0 @@ -993,9 +997,8 @@ call $~lib/builtins/abort unreachable end - local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 call $~lib/rt/pure/__release ) (func $~lib/rt/pure/decrement (param $0 i32) diff --git a/tests/compiler/managed-cast.optimized.wat b/tests/compiler/managed-cast.optimized.wat index ba0ca816f5..2bbfc88632 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -894,13 +894,6 @@ call $~lib/rt/rtrace/onalloc local.get $2 ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) (func $~lib/rt/pure/__retain (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -954,15 +947,21 @@ ) (func $managed-cast/Cat#constructor (result i32) (local $0 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 3 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $0 if (result i32) local.get $0 else + call $~lib/rt/tlsf/maybeInitialize i32.const 4 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain end ) diff --git a/tests/compiler/many-locals.optimized.wat b/tests/compiler/many-locals.optimized.wat index 4c9f7826dd..7d224119fe 100644 --- a/tests/compiler/many-locals.optimized.wat +++ b/tests/compiler/many-locals.optimized.wat @@ -1,14 +1,10 @@ (module (type $i32_=>_i32 (func (param i32) (result i32))) - (type $none_=>_none (func)) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 1024) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00m\00a\00n\00y\00-\00l\00o\00c\00a\00l\00s\00.\00t\00s") (export "memory" (memory $0)) (export "testI32" (func $many-locals/testI32)) (export "testI8" (func $many-locals/testI8)) - (start $~start) (func $many-locals/testI32 (param $0 i32) (result i32) local.get $0 ) @@ -19,18 +15,4 @@ i32.const 24 i32.shr_s ) - (func $~start - i32.const 42 - call $many-locals/testI8 - i32.const 42 - i32.ne - if - i32.const 0 - i32.const 1040 - i32.const 267 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) ) diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index 6d8c3d16e2..1a9572db1f 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -231,14 +231,6 @@ i32.const 1232 end ) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.const 1 - i32.shr_u - ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -332,10 +324,18 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 local.get $0 @@ -1275,46 +1275,46 @@ (local $4 i32) i32.const 0 local.get $0 - call $~lib/string/String#get:length - local.tee $4 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $2 + i32.const 0 + local.get $2 i32.lt_s - local.set $2 + select + local.tee $3 local.get $1 i32.const 0 local.get $1 i32.const 0 i32.gt_s select - local.tee $3 - local.get $4 - i32.lt_s - local.set $1 - i32.const 0 - local.get $4 + local.tee $1 local.get $2 - select - local.tee $2 - local.get $3 - local.get $4 local.get $1 - select - local.tee $3 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 $1 - local.get $2 + local.tee $4 local.get $3 - local.get $2 + local.get $1 local.get $3 + local.get $1 i32.lt_s select i32.const 1 i32.shl - local.tee $2 + local.tee $1 i32.sub local.tee $3 i32.eqz @@ -1323,12 +1323,12 @@ return end i32.const 0 - local.get $1 local.get $4 + local.get $2 i32.const 1 i32.shl i32.eq - local.get $2 + local.get $1 select if local.get $0 @@ -1336,13 +1336,13 @@ end local.get $3 call $~lib/rt/stub/__alloc - local.tee $1 + local.tee $2 local.get $0 - local.get $2 + local.get $1 i32.add local.get $3 call $~lib/memory/memory.copy - local.get $1 + local.get $2 ) (func $~lib/number/F32.isSafeInteger (param $0 f32) (result i32) local.get $0 diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index 42a5e9eaa8..1ab2088bdf 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -2,12 +2,12 @@ (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_none (func)) - (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $none_=>_i32 (func (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) @@ -1034,14 +1034,6 @@ call $~lib/rt/rtrace/onalloc local.get $3 ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) (func $~lib/rt/pure/__retain (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -1104,14 +1096,6 @@ call $~lib/rt/pure/decrement end ) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.const 1 - i32.shr_u - ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -1229,10 +1213,18 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 local.get $0 @@ -1425,6 +1417,79 @@ end end ) + (func $~lib/string/String#substring (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + i32.const 0 + i32.const 1036 + i32.load + i32.const 1 + i32.shr_u + local.tee $0 + i32.const 0 + local.get $0 + i32.lt_s + select + local.tee $1 + i32.const 5 + local.get $0 + i32.const 5 + local.get $0 + i32.lt_s + select + local.tee $2 + local.get $1 + local.get $2 + i32.gt_s + select + i32.const 1 + i32.shl + local.tee $3 + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + i32.const 1 + i32.shl + local.tee $1 + i32.sub + local.tee $2 + i32.eqz + if + i32.const 1312 + return + end + i32.const 0 + local.get $3 + local.get $0 + i32.const 1 + i32.shl + i32.eq + local.get $1 + select + if + i32.const 1040 + return + end + call $~lib/rt/tlsf/maybeInitialize + local.get $2 + i32.const 1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $0 + local.get $1 + i32.const 1040 + i32.add + local.get $2 + call $~lib/memory/memory.copy + local.get $0 + call $~lib/rt/pure/__retain + ) (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) local.get $1 local.get $1 @@ -1804,26 +1869,26 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 8 i32.const 3 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $3 i32.const 0 i32.store - local.get $0 + local.get $3 i32.const 0 i32.store offset=4 - local.get $0 - local.tee $1 + local.get $3 i32.const 123 i32.store - local.get $0 + local.get $3 i32.const 1040 i32.store offset=4 - local.get $0 + local.get $3 call $~lib/rt/pure/__retain local.tee $0 i32.load @@ -1852,9 +1917,12 @@ end local.get $0 call $~lib/rt/pure/__release + call $~lib/rt/tlsf/maybeInitialize i32.const 8 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $0 i32.const 0 i32.store @@ -1865,74 +1933,16 @@ i32.const 123 i32.store local.get $0 - 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 - i32.const 0 - local.get $5 - i32.lt_s - select - local.tee $4 - i32.const 5 - local.get $5 - i32.const 5 - local.get $5 - i32.lt_s - select - local.tee $2 - local.get $4 - local.get $2 - i32.gt_s - select - i32.const 1 - i32.shl - local.tee $3 - local.get $4 - local.get $2 - local.get $4 - local.get $2 - i32.lt_s - select - i32.const 1 - i32.shl - local.tee $4 - i32.sub - local.tee $2 - i32.eqz - br_if $__inlined_func$~lib/string/String#substring - drop - i32.const 1040 - i32.const 0 - local.get $3 - local.get $5 - i32.const 1 - i32.shl - i32.eq - local.get $4 - select - br_if $__inlined_func$~lib/string/String#substring - drop - local.get $2 - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $4 - i32.const 1040 - i32.add - local.get $2 - call $~lib/memory/memory.copy - local.get $3 - call $~lib/rt/pure/__retain - end + call $~lib/string/String#substring i32.store offset=4 local.get $0 call $object-literal/testUnmanaged + call $~lib/rt/tlsf/maybeInitialize i32.const 65 i32.const 4 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $0 i32.const 0 @@ -2020,31 +2030,34 @@ i32.store8 offset=64 local.get $0 call $object-literal/testOmittedTypes + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 5 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $3 + local.tee $2 i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 0 i32.store offset=4 - local.get $3 + local.get $2 f64.const 0 f64.store offset=8 - local.get $3 + local.get $2 i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 1360 i32.store offset=4 - local.get $3 + local.get $2 f64.const 0 f64.store offset=8 - local.get $3 + local.get $2 call $~lib/rt/pure/__retain - local.tee $2 + local.tee $1 i32.load if i32.const 0 @@ -2054,7 +2067,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.load offset=4 i32.const 1360 call $~lib/string/String.__eq @@ -2067,7 +2080,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 f64.load offset=8 f64.const 0 f64.ne @@ -2079,73 +2092,76 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 call $~lib/rt/pure/__release + call $~lib/rt/tlsf/maybeInitialize i32.const 40 i32.const 6 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $2 + local.tee $1 i32.const 1392 i32.store - local.get $2 + local.get $1 i32.const 1424 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 - local.get $2 + local.get $1 i32.const 0 i32.store offset=16 - local.get $2 + local.get $1 i32.const 0 i32.store offset=20 - local.get $2 + local.get $1 i32.const 0 i32.store offset=24 - local.get $2 + local.get $1 i32.const 0 i32.store offset=28 - local.get $2 + local.get $1 i32.const 0 i32.store offset=32 - local.get $2 + local.get $1 i32.const -1 i32.store offset=36 - 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 - local.get $2 + local.get $1 i32.const 0 i32.store offset=16 - local.get $2 + local.get $1 i32.const 0 i32.store offset=20 - local.get $2 + local.get $1 i32.const 0 i32.store offset=24 - local.get $2 + local.get $1 i32.const 0 i32.store offset=28 - local.get $2 + local.get $1 i32.const 0 i32.store offset=32 - local.get $2 - call $object-literal/testOmittedFoo local.get $1 + call $object-literal/testOmittedFoo + local.get $3 call $~lib/rt/pure/__release 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 $1 + call $~lib/rt/pure/__release ) (func $~start global.get $~started diff --git a/tests/compiler/rc/logical-and-mismatch.optimized.wat b/tests/compiler/rc/logical-and-mismatch.optimized.wat index ed8cf871e1..db7ac2e63f 100644 --- a/tests/compiler/rc/logical-and-mismatch.optimized.wat +++ b/tests/compiler/rc/logical-and-mismatch.optimized.wat @@ -2,10 +2,10 @@ (type $i32_=>_none (func (param i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) @@ -941,13 +941,6 @@ end local.get $0 ) - (func $rc/logical-and-mismatch/Ref#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 i32.const 1184 @@ -961,9 +954,17 @@ ) (func $~start (local $0 i32) - call $rc/logical-and-mismatch/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain global.set $rc/logical-and-mismatch/gloRef - call $rc/logical-and-mismatch/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain local.tee $0 if (result i32) local.get $0 @@ -977,18 +978,30 @@ global.get $rc/logical-and-mismatch/gloRef local.tee $0 if (result i32) - call $rc/logical-and-mismatch/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain else local.get $0 call $~lib/rt/pure/__retain end call $~lib/rt/pure/__release - call $rc/logical-and-mismatch/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain local.tee $0 if (result i32) local.get $0 call $~lib/rt/pure/__release - call $rc/logical-and-mismatch/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain else local.get $0 end diff --git a/tests/compiler/rc/logical-or-mismatch.optimized.wat b/tests/compiler/rc/logical-or-mismatch.optimized.wat index 28dd6e3978..688e313b24 100644 --- a/tests/compiler/rc/logical-or-mismatch.optimized.wat +++ b/tests/compiler/rc/logical-or-mismatch.optimized.wat @@ -2,10 +2,10 @@ (type $i32_=>_none (func (param i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) @@ -941,13 +941,6 @@ end local.get $0 ) - (func $rc/logical-or-mismatch/Ref#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 i32.const 1184 @@ -961,9 +954,17 @@ ) (func $~start (local $0 i32) - call $rc/logical-or-mismatch/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain global.set $rc/logical-or-mismatch/gloRef - call $rc/logical-or-mismatch/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain local.tee $0 if (result i32) local.get $0 @@ -980,17 +981,29 @@ local.get $0 call $~lib/rt/pure/__retain else - call $rc/logical-or-mismatch/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain end call $~lib/rt/pure/__release - call $rc/logical-or-mismatch/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain local.tee $0 if (result i32) local.get $0 else local.get $0 call $~lib/rt/pure/__release - call $rc/logical-or-mismatch/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain end call $~lib/rt/pure/__release global.get $rc/logical-or-mismatch/gloRef diff --git a/tests/compiler/rc/optimize.optimized.wat b/tests/compiler/rc/optimize.optimized.wat index 995319d8fa..655d418f3b 100644 --- a/tests/compiler/rc/optimize.optimized.wat +++ b/tests/compiler/rc/optimize.optimized.wat @@ -1,12 +1,13 @@ (module (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $none_=>_none (func)) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) @@ -40,7 +41,7 @@ (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)) - (export "FinalizeARC.eliminates.unnecessaryAllocation" (func $rc/optimize/eliminated_v)) + (export "FinalizeARC.eliminates.unnecessaryAllocation" (func $rc/optimize/FinalizeARC.eliminates.unnecessaryAllocation)) (export "FinalizeARC.eliminates.unnecessaryPair" (func $rc/optimize/eliminated_vi)) (export "FinalizeARC.eliminates.unnecessaryStaticPair" (func $rc/optimize/eliminated_v)) (export "FinalizeARC.eliminates.unnecessaryStaticRetain" (func $rc/optimize/eliminated_v)) @@ -751,18 +752,86 @@ end local.get $1 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + i32.const 31 + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + local.get $1 + local.get $1 + i32.const 536870904 + i32.lt_u + select + local.tee $1 + i32.clz + i32.sub + local.set $2 + local.get $1 + local.get $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $1 + i32.const 16 + i32.lt_u + i32.const 0 + local.get $2 + i32.const 23 + i32.lt_u + select + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 338 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add i32.load offset=4 - i32.const -2 + i32.const -1 + local.get $1 + i32.shl i32.and - local.tee $2 + local.tee $1 if (result i32) local.get $0 - local.get $2 + local.get $1 i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add i32.const 2 i32.shl i32.add @@ -770,7 +839,11 @@ else local.get $0 i32.load - i32.const -2 + i32.const -1 + local.get $2 + i32.const 1 + i32.add + i32.shl i32.and local.tee $1 if (result i32) @@ -808,10 +881,85 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + i32.load + local.set $3 + local.get $2 + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1088 + i32.const 365 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.get $2 + i32.sub + local.tee $4 + i32.const 32 + i32.ge_u + if + local.get $1 + local.get $2 + local.get $3 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + local.get $1 + i32.const 16 + i32.add + i32.add + local.tee $1 + local.get $4 + i32.const 16 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $3 + i32.const -2 + i32.and + i32.store + local.get $1 + i32.const 16 + i32.add + local.tee $0 + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.get $0 + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + i32.load + i32.const -3 + i32.and + i32.store + end + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/rt/tlsf/collectLock if i32.const 0 @@ -821,9 +969,32 @@ call $~lib/builtins/abort unreachable end + local.get $1 + i32.const 1073741808 + i32.ge_u + if + i32.const 1136 + i32.const 1088 + i32.const 461 + i32.const 30 + call $~lib/builtins/abort + unreachable + end local.get $0 + local.get $1 + i32.const 15 + i32.add + i32.const -16 + i32.and + local.tee $3 + i32.const 16 + local.get $3 + i32.const 16 + i32.gt_u + select + local.tee $4 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $3 i32.eqz if i32.const 1 @@ -831,13 +1002,14 @@ i32.const 0 global.set $~lib/rt/tlsf/collectLock local.get $0 + local.get $4 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $3 i32.eqz if i32.const 16 memory.size - local.tee $2 + local.tee $3 i32.const 16 i32.shl i32.const 16 @@ -846,24 +1018,40 @@ i32.load offset=1568 i32.ne i32.shl - i32.const 65551 + local.get $4 + i32.const 1 + i32.const 27 + local.get $4 + i32.clz + i32.sub + i32.shl + i32.const 1 + i32.sub + i32.add + local.get $4 + local.get $4 + i32.const 536870904 + i32.lt_u + select + i32.add + i32.const 65535 i32.add i32.const -65536 i32.and i32.const 16 i32.shr_u - local.set $1 - local.get $2 - local.get $1 - local.get $2 - local.get $1 + local.set $5 + local.get $3 + local.get $5 + local.get $3 + local.get $5 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $5 memory.grow i32.const 0 i32.lt_s @@ -872,7 +1060,7 @@ end end local.get $0 - local.get $2 + local.get $3 i32.const 16 i32.shl memory.size @@ -880,8 +1068,9 @@ i32.shl call $~lib/rt/tlsf/addMemory local.get $0 + local.get $4 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $3 i32.eqz if i32.const 0 @@ -893,11 +1082,11 @@ end end end - local.get $1 + local.get $3 i32.load i32.const -4 i32.and - i32.const 16 + local.get $4 i32.lt_u if i32.const 0 @@ -907,81 +1096,30 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i32.const 0 i32.store offset=4 - local.get $1 - i32.const 3 + local.get $3 + local.get $2 i32.store offset=8 + local.get $3 local.get $1 - i32.const 0 i32.store offset=12 local.get $0 - local.get $1 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.tee $2 - i32.const -4 - i32.and - i32.const 16 - i32.sub - local.tee $3 - i32.const 32 - i32.ge_u - if - local.get $1 - local.get $2 - i32.const 2 - i32.and - i32.const 16 - i32.or - i32.store - local.get $1 - i32.const 32 - i32.add - local.tee $2 - local.get $3 - i32.const 16 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $2 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $2 - i32.const -2 - i32.and - i32.store - local.get $1 - i32.const 16 - i32.add - local.tee $0 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.get $0 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 + local.get $0 + local.get $3 + local.get $4 + call $~lib/rt/tlsf/prepareBlock + local.get $3 call $~lib/rt/rtrace/onalloc - local.get $1 + local.get $3 ) (func $rc/optimize/getRef (result i32) call $~lib/rt/tlsf/maybeInitialize + i32.const 0 + i32.const 3 call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add @@ -1002,11 +1140,7 @@ (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 + call $rc/optimize/getRef local.set $1 call $~lib/rt/pure/__release local.get $1 @@ -1129,6 +1263,13 @@ call $~lib/rt/pure/__release i32.const 0 ) + (func $rc/optimize/FinalizeARC.eliminates.unnecessaryAllocation + call $~lib/rt/tlsf/maybeInitialize + i32.const 1 + i32.const 0 + call $~lib/rt/tlsf/allocateBlock + drop + ) (func $rc/optimize/FinalizeARC.keeps.dynamicRetain (param $0 i32) local.get $0 call $~lib/rt/pure/__retain diff --git a/tests/compiler/rc/rereturn.optimized.wat b/tests/compiler/rc/rereturn.optimized.wat index 1082f8c402..ac8a174cd9 100644 --- a/tests/compiler/rc/rereturn.optimized.wat +++ b/tests/compiler/rc/rereturn.optimized.wat @@ -1,9 +1,9 @@ (module + (type $none_=>_none (func)) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $none_=>_none (func)) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) @@ -21,8 +21,9 @@ (export "__alloc" (func $~lib/rt/tlsf/__alloc)) (export "__retain" (func $~lib/rt/pure/__retain)) (export "__release" (func $~lib/rt/pure/__release)) - (export "__collect" (func $~start)) + (export "__collect" (func $~lib/rt/pure/__collect)) (export "__rtti_base" (global $~lib/rt/__rtti_base)) + (start $~start) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -1095,6 +1096,13 @@ end ) (func $~start + call $~lib/rt/tlsf/maybeInitialize + i32.const 0 + i32.const 3 + call $~lib/rt/tlsf/allocateBlock + drop + ) + (func $~lib/rt/pure/__collect nop ) (func $~lib/rt/pure/decrement (param $0 i32) diff --git a/tests/compiler/rc/ternary-mismatch.optimized.wat b/tests/compiler/rc/ternary-mismatch.optimized.wat index e2dcc99097..4b9d08bc6d 100644 --- a/tests/compiler/rc/ternary-mismatch.optimized.wat +++ b/tests/compiler/rc/ternary-mismatch.optimized.wat @@ -2,10 +2,10 @@ (type $i32_=>_none (func (param i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) @@ -943,17 +943,14 @@ end local.get $0 ) - (func $rc/ternary-mismatch/Ref#constructor (result i32) - call $~lib/rt/tlsf/maybeInitialize - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - call $~lib/rt/pure/__retain - ) (func $rc/ternary-mismatch/test1 (param $0 i32) (result i32) local.get $0 if (result i32) - call $rc/ternary-mismatch/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain else global.get $rc/ternary-mismatch/gloRef call $~lib/rt/pure/__retain @@ -976,11 +973,19 @@ global.get $rc/ternary-mismatch/gloRef call $~lib/rt/pure/__retain else - call $rc/ternary-mismatch/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain end ) (func $~start - call $rc/ternary-mismatch/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain global.set $rc/ternary-mismatch/gloRef i32.const 1 call $rc/ternary-mismatch/test1 diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index 49a4bab338..5edf48d977 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -347,7 +347,7 @@ end ) (func $~lib/util/number/utoa64 (param $0 i64) (result i32) - (local $1 i64) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -363,16 +363,16 @@ if local.get $0 i32.wrap_i64 - local.tee $2 + local.tee $1 call $~lib/util/number/decimalCount32 - local.tee $3 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/stub/__alloc - local.tee $4 + local.tee $3 + local.get $1 local.get $2 - local.get $3 call $~lib/util/number/utoa_dec_simple else local.get $0 @@ -419,39 +419,42 @@ i64.const 1000000000000000 i64.lt_u select - local.tee $2 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/stub/__alloc - local.tee $4 - local.set $3 + local.tee $3 + local.set $2 loop $do-continue|0 + local.get $0 + i64.const 10 + i64.rem_u + i32.wrap_i64 + local.set $4 local.get $0 i64.const 10 i64.div_u - local.get $3 + local.set $0 local.get $2 + local.get $1 i32.const 1 i32.sub - local.tee $2 + local.tee $1 i32.const 1 i32.shl i32.add - local.get $0 - i64.const 10 - i64.rem_u - i32.wrap_i64 + local.get $4 i32.const 48 i32.add i32.store16 - local.tee $0 + local.get $0 i64.const 0 i64.ne br_if $do-continue|0 end end - local.get $4 + local.get $3 ) (func $resolve-access/arrayAccess (result i32) (local $0 i32) diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index 81ca43caa9..06992b7dcd 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -53,14 +53,6 @@ (global $resolve-binary/bar2 (mut i32) (i32.const 0)) (export "memory" (memory $0)) (start $~start) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.const 1 - i32.shr_u - ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -154,10 +146,18 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 local.get $0 @@ -1289,46 +1289,46 @@ (local $4 i32) i32.const 0 local.get $0 - call $~lib/string/String#get:length - local.tee $4 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $2 + i32.const 0 + local.get $2 i32.lt_s - local.set $2 + select + local.tee $3 local.get $1 i32.const 0 local.get $1 i32.const 0 i32.gt_s select - local.tee $3 - local.get $4 - i32.lt_s - local.set $1 - i32.const 0 - local.get $4 + local.tee $1 local.get $2 - select - local.tee $2 - local.get $3 - local.get $4 local.get $1 - select - local.tee $3 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 $1 - local.get $2 + local.tee $4 local.get $3 - local.get $2 + local.get $1 local.get $3 + local.get $1 i32.lt_s select i32.const 1 i32.shl - local.tee $2 + local.tee $1 i32.sub local.tee $3 i32.eqz @@ -1337,12 +1337,12 @@ return end i32.const 0 - local.get $1 local.get $4 + local.get $2 i32.const 1 i32.shl i32.eq - local.get $2 + local.get $1 select if local.get $0 @@ -1351,15 +1351,15 @@ local.get $3 i32.const 1 call $~lib/rt/stub/__alloc - local.tee $1 + local.tee $2 local.get $0 - local.get $2 + local.get $1 i32.add local.get $3 call $~lib/memory/memory.copy - local.get $1 + local.get $2 ) - (func $~lib/number/F64#toString (result i32) + (func $~lib/util/number/dtoa (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -1370,54 +1370,54 @@ call $~lib/util/number/dtoa_core local.tee $1 i32.const 28 - i32.ne - if (result i32) - local.get $0 - local.get $1 - call $~lib/string/String#substring + i32.eq + if local.get $0 - i32.const 15 - i32.and - i32.eqz + return + end + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.get $0 + i32.const 15 + i32.and + i32.eqz + i32.const 0 + local.get $0 + select + i32.eqz + if i32.const 0 - local.get $0 - select - i32.eqz - if - i32.const 0 - i32.const 2656 - i32.const 68 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 16 - i32.sub - local.tee $2 - i32.load offset=4 - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 2656 - i32.const 70 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/stub/offset - local.get $0 - local.get $2 - i32.load - i32.add - i32.eq - if - local.get $2 - global.set $~lib/rt/stub/offset - end - else - local.get $0 + i32.const 2656 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 16 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 2656 + i32.const 70 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/stub/offset + local.get $0 + local.get $1 + i32.load + i32.add + i32.eq + if + local.get $1 + global.set $~lib/rt/stub/offset end ) (func $start:resolve-binary @@ -1588,7 +1588,7 @@ call $~lib/builtins/abort unreachable end - call $~lib/number/F64#toString + call $~lib/util/number/dtoa i32.const 2704 call $~lib/string/String.__eq i32.eqz @@ -1843,7 +1843,7 @@ call $~lib/builtins/abort unreachable end - call $~lib/number/F64#toString + call $~lib/util/number/dtoa i32.const 2704 call $~lib/string/String.__eq i32.eqz @@ -1855,7 +1855,7 @@ call $~lib/builtins/abort unreachable end - call $~lib/number/F64#toString + call $~lib/util/number/dtoa i32.const 2704 call $~lib/string/String.__eq i32.eqz diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index b36e1a3f7a..4ab4a5fc29 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -1,15 +1,15 @@ (module (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_none (func)) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_f32_=>_none (func (param i32 i32 f32))) (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 $f32_=>_i32 (func (param f32) (result i32))) + (type $f64_=>_i32 (func (param f64) (result i32))) (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) @@ -1542,60 +1542,52 @@ local.get $9 i32.add ) - (func $~lib/string/String#get:length (param $0 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 i32.const 16 i32.sub i32.load offset=12 i32.const 1 i32.shr_u - ) - (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + local.tee $2 i32.const 0 - local.get $0 - call $~lib/string/String#get:length - local.tee $4 + local.get $2 i32.lt_s - local.set $2 + select + local.tee $3 local.get $1 i32.const 0 local.get $1 i32.const 0 i32.gt_s select - local.tee $3 - local.get $4 - i32.lt_s - local.set $1 - i32.const 0 - local.get $4 + local.tee $1 local.get $2 - select - local.tee $2 - local.get $3 - local.get $4 local.get $1 - select - local.tee $3 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 $1 - local.get $2 + local.tee $4 local.get $3 - local.get $2 + local.get $1 local.get $3 + local.get $1 i32.lt_s select i32.const 1 i32.shl - local.tee $2 + local.tee $1 i32.sub local.tee $3 i32.eqz @@ -1604,12 +1596,12 @@ return end i32.const 0 - local.get $1 local.get $4 + local.get $2 i32.const 1 i32.shl i32.eq - local.get $2 + local.get $1 select if local.get $0 @@ -1618,110 +1610,103 @@ local.get $3 i32.const 1 call $~lib/rt/stub/__alloc - local.tee $1 + local.tee $2 local.get $0 - local.get $2 + local.get $1 i32.add local.get $3 call $~lib/memory/memory.copy - local.get $1 + local.get $2 ) - (func $~lib/number/F32#toString (param $0 f32) (result i32) + (func $~lib/util/number/dtoa (param $0 f64) (result i32) (local $1 i32) (local $2 i32) - (local $3 f64) - (local $4 i32) - block $__inlined_func$~lib/util/number/dtoa + (local $3 i32) + local.get $0 + f64.const 0 + f64.eq + if + i32.const 1280 + return + end + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.ne + if + local.get $0 local.get $0 - f64.promote_f32 - local.tee $3 - f64.const 0 - f64.eq - if - i32.const 1280 - local.set $1 - br $__inlined_func$~lib/util/number/dtoa - end - local.get $3 - local.get $3 - f64.sub - f64.const 0 f64.ne if - local.get $3 - local.get $3 - f64.ne - if - i32.const 1312 - local.set $1 - br $__inlined_func$~lib/util/number/dtoa - end - i32.const 1344 - i32.const 1392 - local.get $3 - f64.const 0 - f64.lt - select - local.set $1 - br $__inlined_func$~lib/util/number/dtoa + i32.const 1312 + return end - i32.const 56 - i32.const 1 - call $~lib/rt/stub/__alloc - local.tee $1 - local.get $3 - call $~lib/util/number/dtoa_core - local.tee $2 - i32.const 28 - i32.eq - br_if $__inlined_func$~lib/util/number/dtoa - local.get $1 - local.get $2 - call $~lib/string/String#substring - local.get $1 - i32.const 15 - i32.and - i32.eqz - i32.const 0 - local.get $1 + i32.const 1344 + i32.const 1392 + local.get $0 + f64.const 0 + f64.lt select - i32.eqz - if - i32.const 0 - i32.const 2352 - i32.const 68 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 16 - i32.sub - local.tee $4 - i32.load offset=4 - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 2352 - i32.const 70 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/stub/offset + return + end + i32.const 56 + i32.const 1 + call $~lib/rt/stub/__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 - local.get $4 - i32.load - i32.add - i32.eq - if - local.get $4 - global.set $~lib/rt/stub/offset - end - local.set $1 + return end local.get $1 + local.get $2 + call $~lib/string/String#substring + local.get $1 + i32.const 15 + i32.and + i32.eqz + i32.const 0 + local.get $1 + select + i32.eqz + if + i32.const 0 + i32.const 2352 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 16 + i32.sub + local.tee $3 + i32.load offset=4 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 2352 + i32.const 70 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/stub/offset + local.get $1 + local.get $3 + i32.load + i32.add + i32.eq + if + local.get $3 + global.set $~lib/rt/stub/offset + end ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -1816,10 +1801,18 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 local.get $0 @@ -1919,7 +1912,8 @@ global.get $resolve-elementaccess/arr i32.const 0 call $~lib/typedarray/Float32Array#__get - call $~lib/number/F32#toString + f64.promote_f32 + call $~lib/util/number/dtoa i32.const 2400 call $~lib/string/String.__eq i32.eqz @@ -1934,7 +1928,8 @@ global.get $resolve-elementaccess/arr i32.const 1 call $~lib/typedarray/Float32Array#__get - call $~lib/number/F32#toString + f64.promote_f32 + call $~lib/util/number/dtoa i32.const 2496 call $~lib/string/String.__eq i32.eqz @@ -1958,7 +1953,8 @@ local.get $0 i32.const 0 call $~lib/typedarray/Float32Array#__get - call $~lib/number/F32#toString + f64.promote_f32 + call $~lib/util/number/dtoa i32.const 2528 call $~lib/string/String.__eq i32.eqz diff --git a/tests/compiler/resolve-function-expression.optimized.wat b/tests/compiler/resolve-function-expression.optimized.wat index ee3dd5a1bf..121b75da9f 100644 --- a/tests/compiler/resolve-function-expression.optimized.wat +++ b/tests/compiler/resolve-function-expression.optimized.wat @@ -133,7 +133,7 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $2 + local.tee $1 if i32.const 0 local.get $0 @@ -180,50 +180,45 @@ i32.const 100000 i32.lt_u select - local.get $2 + local.get $1 i32.add - local.tee $3 + local.tee $2 i32.const 1 i32.shl call $~lib/rt/stub/__alloc - local.tee $4 - local.set $5 + local.tee $3 + local.set $4 loop $do-continue|0 + local.get $0 + i32.const 10 + i32.rem_u + local.set $5 local.get $0 i32.const 10 i32.div_u - local.get $5 - local.get $3 + local.set $0 + local.get $4 + local.get $2 i32.const 1 i32.sub - local.tee $3 + local.tee $2 i32.const 1 i32.shl i32.add - local.get $0 - i32.const 10 - i32.rem_u + local.get $5 i32.const 48 i32.add i32.store16 - local.tee $0 + local.get $0 br_if $do-continue|0 end - local.get $2 + local.get $1 if - local.get $4 + local.get $3 i32.const 45 i32.store16 end - local.get $4 - ) - (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 + local.get $3 ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -274,16 +269,16 @@ local.set $1 local.get $2 if - local.get $0 + local.get $3 i32.load16_u local.tee $2 - local.get $3 + local.get $0 i32.load16_u local.tee $4 i32.ne if - local.get $2 local.get $4 + local.get $2 i32.sub return end @@ -300,7 +295,7 @@ end i32.const 0 ) - (func $start:resolve-function-expression + (func $~start (local $0 i32) (local $1 i32) i32.const 2 @@ -334,32 +329,36 @@ i32.const 1552 global.set $~lib/rt/stub/offset block $__inlined_func$~lib/string/String.__eq (result i32) + i32.const 1 i32.const 0 i32.const 1184 i32.load call_indirect (type $i32_=>_i32) call $~lib/util/number/itoa32 local.tee $0 - local.set $1 - i32.const 1 - local.get $0 i32.const 1536 i32.eq br_if $__inlined_func$~lib/string/String.__eq drop block $folding-inner0 - local.get $1 + local.get $0 i32.eqz br_if $folding-inner0 - local.get $1 - call $~lib/string/String#get:length - local.tee $0 - i32.const 1536 - call $~lib/string/String#get:length + local.get $0 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $1 + i32.const 1532 + i32.load + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 - local.get $1 local.get $0 + local.get $1 call $~lib/util/string/compareImpl i32.eqz br $__inlined_func$~lib/string/String.__eq @@ -376,7 +375,4 @@ unreachable end ) - (func $~start - call $start:resolve-function-expression - ) ) diff --git a/tests/compiler/resolve-propertyaccess.optimized.wat b/tests/compiler/resolve-propertyaccess.optimized.wat index 07f6d62705..25b3d596d1 100644 --- a/tests/compiler/resolve-propertyaccess.optimized.wat +++ b/tests/compiler/resolve-propertyaccess.optimized.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func)) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) @@ -125,7 +125,7 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $2 + local.tee $1 if i32.const 0 local.get $0 @@ -172,51 +172,46 @@ i32.const 100000 i32.lt_u select - local.get $2 + local.get $1 i32.add - local.tee $3 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/stub/__alloc - local.tee $4 - local.set $5 + local.tee $3 + local.set $4 loop $do-continue|0 + local.get $0 + i32.const 10 + i32.rem_u + local.set $5 local.get $0 i32.const 10 i32.div_u - local.get $5 - local.get $3 + local.set $0 + local.get $4 + local.get $2 i32.const 1 i32.sub - local.tee $3 + local.tee $2 i32.const 1 i32.shl i32.add - local.get $0 - i32.const 10 - i32.rem_u + local.get $5 i32.const 48 i32.add i32.store16 - local.tee $0 + local.get $0 br_if $do-continue|0 end - local.get $2 + local.get $1 if - local.get $4 + local.get $3 i32.const 45 i32.store16 end - local.get $4 - ) - (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 + local.get $3 ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -311,10 +306,18 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 local.get $0 diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index 86bb1d91ff..e95b67a001 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -1189,14 +1189,6 @@ br_if $do-continue|0 end ) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.const 1 - i32.shr_u - ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -1314,10 +1306,18 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 local.get $0 @@ -2265,7 +2265,11 @@ (local $4 i32) i32.const 0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 i32.const 0 local.get $2 @@ -2321,9 +2325,12 @@ call $~lib/rt/pure/__retain return end + call $~lib/rt/tlsf/maybeInitialize local.get $3 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 local.get $1 @@ -2372,19 +2379,24 @@ (local $4 i32) i32.const 1 call $~lib/util/number/decimalCount32 - local.tee $0 + local.tee $1 i32.const 1 i32.shl + local.set $0 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $0 i32.const 1 - local.get $0 - call $~lib/util/number/utoa_dec_simple local.get $1 - call $~lib/rt/pure/__retain - local.tee $0 + call $~lib/util/number/utoa_dec_simple local.get $0 + call $~lib/rt/pure/__retain + local.tee $1 + local.get $1 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2397,35 +2409,38 @@ unreachable end block $__inlined_func$~lib/util/number/dtoa + call $~lib/rt/tlsf/maybeInitialize i32.const 56 i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $1 - call $~lib/util/number/dtoa_core + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $0 + call $~lib/util/number/dtoa_core + local.tee $1 i32.const 28 i32.eq if - local.get $1 + local.get $0 call $~lib/rt/pure/__retain - local.set $0 + local.set $1 br $__inlined_func$~lib/util/number/dtoa end - local.get $1 local.get $0 + local.get $1 call $~lib/string/String#substring - local.set $0 + local.set $1 call $~lib/rt/tlsf/maybeInitialize - local.get $1 + local.get $0 i32.const 16 i32.sub local.set $2 - local.get $1 + local.get $0 i32.const 15 i32.and i32.eqz i32.const 0 - local.get $1 + local.get $0 select if (result i32) local.get $2 @@ -2457,7 +2472,7 @@ local.get $2 call $~lib/rt/tlsf/freeBlock end - local.get $0 + local.get $1 i32.const 2688 call $~lib/string/String.__eq i32.eqz @@ -2512,7 +2527,7 @@ unreachable end call $~lib/rt/pure/__release - local.get $0 + local.get $1 call $~lib/rt/pure/__release i32.const 2720 call $~lib/rt/pure/__release diff --git a/tests/compiler/resolve-unary.optimized.wat b/tests/compiler/resolve-unary.optimized.wat index 1a6b1e62cd..bb01c137cd 100644 --- a/tests/compiler/resolve-unary.optimized.wat +++ b/tests/compiler/resolve-unary.optimized.wat @@ -1,8 +1,8 @@ (module (type $none_=>_none (func)) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) @@ -130,7 +130,7 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $2 + local.tee $1 if i32.const 0 local.get $0 @@ -177,51 +177,46 @@ i32.const 100000 i32.lt_u select - local.get $2 + local.get $1 i32.add - local.tee $3 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/stub/__alloc - local.tee $4 - local.set $5 + local.tee $3 + local.set $4 loop $do-continue|0 + local.get $0 + i32.const 10 + i32.rem_u + local.set $5 local.get $0 i32.const 10 i32.div_u - local.get $5 - local.get $3 + local.set $0 + local.get $4 + local.get $2 i32.const 1 i32.sub - local.tee $3 + local.tee $2 i32.const 1 i32.shl i32.add - local.get $0 - i32.const 10 - i32.rem_u + local.get $5 i32.const 48 i32.add i32.store16 - local.tee $0 + local.get $0 br_if $do-continue|0 end - local.get $2 + local.get $1 if - local.get $4 + local.get $3 i32.const 45 i32.store16 end - local.get $4 - ) - (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 + local.get $3 ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -316,10 +311,18 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 local.get $0 diff --git a/tests/compiler/retain-release-sanity.optimized.wat b/tests/compiler/retain-release-sanity.optimized.wat index 686f1bd9d3..cfa8787f2d 100644 --- a/tests/compiler/retain-release-sanity.optimized.wat +++ b/tests/compiler/retain-release-sanity.optimized.wat @@ -1,9 +1,9 @@ (module (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) @@ -1057,14 +1057,6 @@ call $~lib/rt/rtrace/onalloc local.get $3 ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (local $2 i32) block $~lib/util/memory/memset|inlined.0 @@ -1687,14 +1679,6 @@ local.get $2 i32.store offset=12 ) - (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/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -1726,16 +1710,24 @@ i32.const 1424 local.set $0 end - local.get $3 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.tee $4 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.const 1 i32.shl local.tee $6 + local.get $3 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $4 i32.add local.tee $1 i32.eqz @@ -1745,9 +1737,12 @@ i32.const 1344 br $__inlined_func$~lib/string/String#concat end + call $~lib/rt/tlsf/maybeInitialize local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $1 local.get $3 @@ -1775,9 +1770,12 @@ (local $3 i32) (local $4 i32) (local $5 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 3 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $2 i32.const 0 @@ -1791,9 +1789,12 @@ local.get $2 i32.const 0 i32.store offset=12 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 i32.const 12 call $~lib/memory/memory.fill @@ -1856,9 +1857,12 @@ i32.store offset=12 local.get $2 call $~lib/rt/pure/__release + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 5 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $2 i32.const 0 @@ -1872,9 +1876,12 @@ local.get $2 i32.const 0 i32.store offset=12 + call $~lib/rt/tlsf/maybeInitialize i32.const 0 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 i32.const 0 call $~lib/memory/memory.fill @@ -1910,9 +1917,12 @@ i32.const 10 i32.lt_s if + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 4 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $2 i32.const 0 @@ -1926,9 +1936,12 @@ local.get $2 i32.const 0 i32.store offset=12 + call $~lib/rt/tlsf/maybeInitialize i32.const 0 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 i32.const 0 call $~lib/memory/memory.fill @@ -1968,14 +1981,14 @@ local.get $2 local.get $2 i32.load offset=12 - local.tee $1 + local.tee $5 i32.const 1 i32.add - local.tee $5 + local.tee $1 call $~lib/array/ensureSize local.get $2 i32.load offset=4 - local.get $1 + local.get $5 i32.const 2 i32.shl i32.add @@ -1983,7 +1996,7 @@ call $~lib/rt/pure/__retain i32.store local.get $2 - local.get $5 + local.get $1 i32.store offset=12 i32.const 1344 call $~lib/rt/pure/__release @@ -2017,16 +2030,22 @@ local.get $2 call $~lib/rt/pure/__release call $~lib/rt/pure/__release + call $~lib/rt/tlsf/maybeInitialize i32.const 4 i32.const 6 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $1 i32.const 0 i32.store + call $~lib/rt/tlsf/maybeInitialize i32.const 4 i32.const 7 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $2 i32.const 0 @@ -2262,9 +2281,13 @@ i32.const 256 i32.gt_u select - local.tee $4 + local.set $4 + call $~lib/rt/tlsf/maybeInitialize + local.get $4 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 i32.const 16 i32.sub diff --git a/tests/compiler/retain-return.optimized.wat b/tests/compiler/retain-return.optimized.wat index 2265222389..5219f1bcb5 100644 --- a/tests/compiler/retain-return.optimized.wat +++ b/tests/compiler/retain-return.optimized.wat @@ -942,16 +942,13 @@ end local.get $0 ) - (func $retain-return/Ref#constructor (result i32) + (func $retain-return/returnNew (result i32) call $~lib/rt/tlsf/maybeInitialize call $~lib/rt/tlsf/allocateBlock i32.const 16 i32.add call $~lib/rt/pure/__retain ) - (func $retain-return/returnNew (result i32) - call $retain-return/Ref#constructor - ) (func $~lib/rt/pure/__release (param $0 i32) local.get $0 i32.const 1368 @@ -973,15 +970,23 @@ ) (func $start:retain-return (local $0 i32) - call $retain-return/Ref#constructor - call $~lib/rt/pure/__release - call $retain-return/Ref#constructor - call $~lib/rt/pure/__release - call $retain-return/Ref#constructor - call $~lib/rt/pure/__release - call $retain-return/Ref#constructor - call $~lib/rt/pure/__release - call $retain-return/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + drop + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + drop + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + drop + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + drop + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain global.set $retain-return/ref i32.const 1200 i32.load diff --git a/tests/compiler/rt/finalize.optimized.wat b/tests/compiler/rt/finalize.optimized.wat index cad0f1fc39..a4afcb0ab0 100644 --- a/tests/compiler/rt/finalize.optimized.wat +++ b/tests/compiler/rt/finalize.optimized.wat @@ -3,11 +3,11 @@ (type $i32_i32_=>_none (func (param i32 i32))) (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) (type $none_=>_i32 (func (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) @@ -1049,14 +1049,6 @@ call $~lib/rt/tlsf/prepareBlock local.get $3 ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (local $2 i32) block $~lib/util/memory/memset|inlined.0 @@ -1264,20 +1256,16 @@ end local.get $0 ) - (func $~lib/staticarray/StaticArray#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.const 2 - i32.shr_u - ) (func $rt/finalize/expect (param $0 i32) (local $1 i32) (local $2 i32) global.get $rt/finalize/expectedWriteIndex global.get $rt/finalize/expected - call $~lib/staticarray/StaticArray#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 2 + i32.shr_u i32.ge_s if i32.const 0 @@ -1293,10 +1281,13 @@ i32.add global.set $rt/finalize/expectedWriteIndex local.get $1 - local.tee $2 global.get $rt/finalize/expected - local.tee $1 - call $~lib/staticarray/StaticArray#get:length + local.tee $2 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 2 + i32.shr_u i32.ge_u if i32.const 1408 @@ -1306,8 +1297,8 @@ call $~lib/builtins/abort unreachable end - local.get $1 local.get $2 + local.get $1 i32.const 2 i32.shl i32.add @@ -1319,18 +1310,24 @@ (local $1 i32) (local $2 i32) (local $3 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 40 i32.const 3 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $0 i32.const 40 call $~lib/memory/memory.fill local.get $0 call $~lib/rt/pure/__retain global.set $rt/finalize/expected + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 4 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $2 i32.const 0 @@ -1344,9 +1341,12 @@ local.get $2 i32.const 0 i32.store offset=12 + call $~lib/rt/tlsf/maybeInitialize i32.const 0 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $0 i32.const 0 call $~lib/memory/memory.fill @@ -1405,16 +1405,22 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize i32.const 4 i32.const 5 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $1 i32.const 0 i32.store + call $~lib/rt/tlsf/maybeInitialize i32.const 4 i32.const 6 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $2 i32.const 0 @@ -1770,9 +1776,13 @@ i32.const 256 i32.gt_u select - local.tee $4 + local.set $4 + call $~lib/rt/tlsf/maybeInitialize + local.get $4 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 local.get $0 local.get $3 diff --git a/tests/compiler/rt/instanceof.optimized.wat b/tests/compiler/rt/instanceof.optimized.wat index d433725220..fc26e8be10 100644 --- a/tests/compiler/rt/instanceof.optimized.wat +++ b/tests/compiler/rt/instanceof.optimized.wat @@ -1,6 +1,6 @@ (module - (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_none (func)) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -83,24 +83,21 @@ i32.store offset=12 local.get $3 ) - (func $rt/instanceof/Animal#constructor (param $0 i32) (result i32) + (func $rt/instanceof/Cat#constructor (param $0 i32) (result i32) local.get $0 - if (result i32) - local.get $0 - else - i32.const 3 + i32.eqz + if + i32.const 4 call $~lib/rt/stub/__alloc + local.set $0 end - ) - (func $rt/instanceof/Cat#constructor (param $0 i32) (result i32) local.get $0 if (result i32) local.get $0 else - i32.const 4 + i32.const 3 call $~lib/rt/stub/__alloc end - call $rt/instanceof/Animal#constructor ) (func $~lib/rt/__instanceof (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -136,8 +133,8 @@ (local $0 i32) i32.const 1136 global.set $~lib/rt/stub/offset - i32.const 0 - call $rt/instanceof/Animal#constructor + i32.const 3 + call $~lib/rt/stub/__alloc global.set $rt/instanceof/animal i32.const 0 call $rt/instanceof/Cat#constructor @@ -251,8 +248,8 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - call $rt/instanceof/Animal#constructor + i32.const 3 + call $~lib/rt/stub/__alloc global.set $rt/instanceof/nullableAnimal i32.const 0 call $rt/instanceof/Cat#constructor diff --git a/tests/compiler/std/array-access.optimized.wat b/tests/compiler/std/array-access.optimized.wat index 8c4643e1d0..c4253d49a8 100644 --- a/tests/compiler/std/array-access.optimized.wat +++ b/tests/compiler/std/array-access.optimized.wat @@ -37,7 +37,6 @@ i32.add i32.load local.tee $0 - local.get $0 i32.eqz if i32.const 1152 @@ -47,6 +46,7 @@ call $~lib/builtins/abort unreachable end + local.get $0 ) (func $std/array-access/i32ArrayArrayElementAccess (param $0 i32) (result i32) i32.const 1 @@ -68,20 +68,16 @@ i32.load offset=4 i32.load offset=4 ) - (func $~lib/string/String#get:length (param $0 i32) (result i32) + (func $std/array-access/stringArrayPropertyAccess (param $0 i32) (result i32) local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/array/Array>#__get i32.const 16 i32.sub i32.load offset=12 i32.const 1 i32.shr_u ) - (func $std/array-access/stringArrayPropertyAccess (param $0 i32) (result i32) - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/array/Array>#__get - call $~lib/string/String#get:length - ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -165,30 +161,36 @@ (local $1 i32) (local $2 i32) (local $3 i32) + i32.const 1260 + i32.load + i32.const 1 + i32.shr_u + local.tee $1 + local.set $2 + local.get $1 i32.const 0 local.get $0 - call $~lib/string/String#get:length - local.tee $2 - i32.lt_s - local.set $1 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $1 i32.const 0 - local.get $2 local.get $1 + i32.lt_s select - local.tee $1 - i32.const 1264 - call $~lib/string/String#get:length local.tee $3 i32.add - local.get $2 + local.get $1 i32.gt_s if i32.const 0 return end local.get $0 - local.get $1 local.get $3 + local.get $2 call $~lib/util/string/compareImpl i32.eqz ) @@ -204,7 +206,11 @@ call $~lib/array/Array<~lib/array/Array>#__get i32.const 1 call $~lib/array/Array<~lib/array/Array>#__get - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u ) (func $std/array-access/stringArrayArrayMethodCall (param $0 i32) (result i32) local.get $0 diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index 0360098a44..f8b3545a87 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -1,12 +1,12 @@ (module (type $i32_=>_none (func (param i32))) + (type $none_=>_i32 (func (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_none (func)) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) @@ -1080,14 +1080,6 @@ call $~lib/rt/rtrace/onalloc local.get $3 ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) (func $~lib/rt/pure/__retain (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -1141,16 +1133,22 @@ ) (func $~lib/rt/__allocArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 16 local.get $2 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 + call $~lib/rt/tlsf/maybeInitialize local.get $0 local.get $1 i32.shl local.tee $1 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $3 call $~lib/rt/pure/__retain i32.store @@ -1165,6 +1163,24 @@ i32.store offset=12 local.get $2 ) + (func $std/array-literal/Ref#constructor (result i32) + call $~lib/rt/tlsf/maybeInitialize + i32.const 0 + i32.const 5 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain + ) + (func $std/array-literal/RefWithCtor#constructor (result i32) + call $~lib/rt/tlsf/maybeInitialize + i32.const 0 + i32.const 7 + 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 i32.const 1536 @@ -1447,22 +1463,13 @@ local.tee $1 i32.load offset=4 local.tee $0 - i32.const 0 - i32.const 5 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain + call $std/array-literal/Ref#constructor i32.store local.get $0 - i32.const 0 - i32.const 5 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain + call $std/array-literal/Ref#constructor i32.store offset=4 local.get $0 - i32.const 0 - i32.const 5 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain + call $std/array-literal/Ref#constructor i32.store offset=8 local.get $1 global.set $std/array-literal/dynamicArrayRef @@ -1486,22 +1493,13 @@ local.tee $1 i32.load offset=4 local.tee $0 - i32.const 0 - i32.const 7 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain + call $std/array-literal/RefWithCtor#constructor i32.store local.get $0 - i32.const 0 - i32.const 7 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain + call $std/array-literal/RefWithCtor#constructor i32.store offset=4 local.get $0 - i32.const 0 - i32.const 7 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain + call $std/array-literal/RefWithCtor#constructor i32.store offset=8 local.get $1 global.set $std/array-literal/dynamicArrayRefWithCtor @@ -1532,10 +1530,7 @@ call $~lib/rt/pure/__retain local.tee $0 i32.load offset=4 - i32.const 0 - i32.const 5 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain + call $std/array-literal/Ref#constructor i32.store local.get $0 call $~lib/rt/pure/__release diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index feee7718d4..76265a6f24 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -8,17 +8,17 @@ (type $i32_=>_none (func (param i32))) (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) - (type $none_=>_i32 (func (result i32))) (type $none_=>_f64 (func (result f64))) (type $none_=>_none (func)) + (type $none_=>_i32 (func (result i32))) (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $i64_=>_i32 (func (param i64) (result i32))) (type $i32_i32_i32_=>_f32 (func (param i32 i32 i32) (result f32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) (type $i64_=>_none (func (param i64))) (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $i64_=>_i32 (func (param i64) (result i32))) (type $i64_=>_i64 (func (param i64) (result i64))) (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) @@ -1415,14 +1415,6 @@ call $~lib/rt/rtrace/onalloc local.get $3 ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i64) @@ -1653,9 +1645,12 @@ (local $3 i32) (local $4 i32) (local $5 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 3 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $5 i32.const 0 @@ -1680,12 +1675,15 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 2 i32.shl local.tee $4 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 i32.const 0 local.get $4 @@ -1729,9 +1727,12 @@ ) (func $std/array/Ref#constructor (param $0 i32) (result i32) (local $1 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 4 i32.const 4 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $1 local.get $0 @@ -1914,35 +1915,40 @@ (func $~lib/rt/__allocArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) + (local $6 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 16 local.get $2 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 + call $~lib/rt/tlsf/maybeInitialize local.get $0 local.get $1 i32.shl - local.tee $1 - local.set $5 - local.get $1 + local.tee $5 + local.tee $6 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.set $1 local.get $3 if - local.get $4 + local.get $1 local.get $3 - local.get $5 + local.get $6 call $~lib/memory/memory.copy end - local.get $4 - local.tee $3 + local.get $1 call $~lib/rt/pure/__retain i32.store local.get $2 - local.get $3 + local.get $1 i32.store offset=4 local.get $2 - local.get $1 + local.get $5 i32.store offset=8 local.get $2 local.get $0 @@ -2935,14 +2941,6 @@ end i32.const -1 ) - (func $~lib/array/Array#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#indexOf - i32.const 0 - i32.ge_s - ) (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -4332,6 +4330,7 @@ local.get $2 call $~lib/rt/pure/__retain local.set $7 + call $~lib/rt/tlsf/maybeInitialize local.get $1 i32.const 31 i32.add @@ -4341,7 +4340,9 @@ i32.shl local.tee $2 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $5 i32.const 0 local.get $2 @@ -4590,27 +4591,26 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/array/Array#sort (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) (local $6 f32) - i32.const 6752 + local.get $1 call $~lib/rt/pure/__retain - local.set $2 + local.set $3 block $folding-inner0 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const 1 i32.le_s br_if $folding-inner0 local.get $0 i32.load offset=4 local.set $1 - local.get $3 + local.get $2 i32.const 2 i32.eq if @@ -4624,7 +4624,7 @@ global.set $~argumentsLength local.get $5 local.get $6 - local.get $2 + local.get $3 i32.load call_indirect (type $f32_f32_=>_i32) i32.const 0 @@ -4639,20 +4639,20 @@ end br $folding-inner0 end - local.get $2 + local.get $3 call $~lib/rt/pure/__retain local.set $4 - local.get $3 + local.get $2 i32.const 256 i32.lt_s if local.get $1 - local.get $3 + local.get $2 local.get $4 call $~lib/util/sort/insertionSort else local.get $1 - local.get $3 + local.get $2 local.get $4 call $~lib/util/sort/weakHeapSort end @@ -4660,13 +4660,13 @@ call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__retain - local.get $2 + local.get $3 call $~lib/rt/pure/__release return end local.get $0 call $~lib/rt/pure/__retain - local.get $2 + local.get $3 call $~lib/rt/pure/__release ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) @@ -4870,6 +4870,7 @@ local.get $2 call $~lib/rt/pure/__retain local.set $7 + call $~lib/rt/tlsf/maybeInitialize local.get $1 i32.const 31 i32.add @@ -4879,7 +4880,9 @@ i32.shl local.tee $2 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $5 i32.const 0 local.get $2 @@ -5128,27 +5131,26 @@ local.get $7 call $~lib/rt/pure/__release ) - (func $~lib/array/Array#sort (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) (local $6 f64) - i32.const 6912 + local.get $1 call $~lib/rt/pure/__retain - local.set $2 + local.set $3 block $folding-inner0 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const 1 i32.le_s br_if $folding-inner0 local.get $0 i32.load offset=4 local.set $1 - local.get $3 + local.get $2 i32.const 2 i32.eq if @@ -5162,7 +5164,7 @@ global.set $~argumentsLength local.get $5 local.get $6 - local.get $2 + local.get $3 i32.load call_indirect (type $f64_f64_=>_i32) i32.const 0 @@ -5177,20 +5179,20 @@ end br $folding-inner0 end - local.get $2 + local.get $3 call $~lib/rt/pure/__retain local.set $4 - local.get $3 + local.get $2 i32.const 256 i32.lt_s if local.get $1 - local.get $3 + local.get $2 local.get $4 call $~lib/util/sort/insertionSort else local.get $1 - local.get $3 + local.get $2 local.get $4 call $~lib/util/sort/weakHeapSort end @@ -5198,13 +5200,13 @@ call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__retain - local.get $2 + local.get $3 call $~lib/rt/pure/__release return end local.get $0 call $~lib/rt/pure/__retain - local.get $2 + local.get $3 call $~lib/rt/pure/__release ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) @@ -5429,6 +5431,7 @@ local.get $2 call $~lib/rt/pure/__retain local.set $6 + call $~lib/rt/tlsf/maybeInitialize local.get $1 i32.const 31 i32.add @@ -5438,7 +5441,9 @@ i32.shl local.tee $2 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $4 i32.const 0 local.get $2 @@ -6054,89 +6059,6 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createReverseOrderedNestedArray (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - i32.const 16 - i32.const 22 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.tee $4 - i32.const 0 - i32.store - local.get $4 - i32.const 0 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $4 - i32.const 0 - i32.store offset=12 - i32.const 8 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $1 - i32.const 0 - i32.const 8 - call $~lib/memory/memory.fill - local.get $1 - local.set $0 - local.get $1 - local.get $4 - i32.load - local.tee $2 - i32.ne - if - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $2 - call $~lib/rt/pure/__release - end - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $4 - i32.const 8 - i32.store offset=8 - local.get $4 - i32.const 2 - i32.store offset=12 - loop $for-loop|0 - local.get $3 - i32.const 2 - i32.lt_s - if - i32.const 1 - call $~lib/array/Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - local.get $3 - i32.sub - call $~lib/array/Array#__set - local.get $4 - local.get $3 - local.get $1 - call $~lib/array/Array<~lib/array/Array>#__set - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $4 - ) (func $start:std/array~anonymous|47 (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 @@ -6427,9 +6349,12 @@ (local $2 i32) (local $3 i32) (local $4 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 25 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $4 i32.const 0 @@ -6443,9 +6368,12 @@ local.get $4 i32.const 0 i32.store offset=12 + call $~lib/rt/tlsf/maybeInitialize i32.const 2048 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 i32.const 0 i32.const 2048 @@ -6481,9 +6409,12 @@ i32.const 512 i32.lt_s if + call $~lib/rt/tlsf/maybeInitialize i32.const 4 i32.const 24 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $1 i32.const 511 @@ -6523,14 +6454,6 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.const 1 - i32.shr_u - ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -6644,18 +6567,25 @@ select select br_if $folding-inner0 - local.get $0 - call $~lib/string/String#get:length - local.set $2 i32.const 0 local.get $1 - call $~lib/string/String#get:length - local.tee $3 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $2 i32.eqz - local.get $2 + local.get $0 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $3 select br_if $folding-inner0 - local.get $2 + local.get $3 i32.eqz if local.get $0 @@ -6665,7 +6595,7 @@ i32.const -1 return end - local.get $3 + local.get $2 i32.eqz if local.get $0 @@ -6677,10 +6607,10 @@ end local.get $0 local.get $1 - local.get $2 local.get $3 local.get $2 local.get $3 + local.get $2 i32.lt_s select call $~lib/util/string/compareImpl @@ -6721,10 +6651,18 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 local.get $0 @@ -6845,9 +6783,12 @@ local.get $0 i32.eqz if + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 29 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $0 end @@ -6874,12 +6815,15 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize local.get $1 i32.const 2 i32.shl local.tee $4 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 i32.const 0 local.get $4 @@ -6943,16 +6887,24 @@ i32.const 7984 local.set $0 end - local.get $3 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.tee $4 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.const 1 i32.shl local.tee $6 + local.get $3 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $4 i32.add local.tee $1 i32.eqz @@ -6962,9 +6914,12 @@ i32.const 7840 br $__inlined_func$~lib/string/String#concat end + call $~lib/rt/tlsf/maybeInitialize local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $1 local.get $3 @@ -6985,13 +6940,94 @@ local.get $5 call $~lib/rt/pure/__release ) + (func $std/array/createRandomString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 7840 + local.set $1 + loop $for-loop|0 + local.get $4 + local.get $0 + i32.lt_s + if + local.get $1 + local.tee $2 + local.get $1 + block $__inlined_func$~lib/string/String#charAt (result i32) + i32.const 7840 + call $~lib/math/NativeMath.random + i32.const 6508 + i32.load + i32.const 1 + i32.shr_u + f64.convert_i32_s + f64.mul + f64.floor + i32.trunc_f64_s + local.tee $3 + i32.const 6508 + i32.load + i32.const 1 + i32.shr_u + i32.ge_u + br_if $__inlined_func$~lib/string/String#charAt + drop + call $~lib/rt/tlsf/maybeInitialize + i32.const 2 + i32.const 1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $1 + local.get $3 + i32.const 1 + i32.shl + i32.const 6512 + i32.add + i32.load16_u + i32.store16 + local.get $1 + call $~lib/rt/pure/__retain + end + local.tee $3 + call $~lib/string/String.__concat + local.tee $5 + local.tee $1 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $2 + call $~lib/rt/pure/__release + end + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + 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 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 i32.const 0 local.get $2 @@ -7047,9 +7083,12 @@ call $~lib/rt/pure/__retain return end + call $~lib/rt/tlsf/maybeInitialize local.get $3 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 local.get $1 @@ -7098,7 +7137,11 @@ end local.get $4 local.get $3 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $5 i32.const 5 i32.add @@ -7108,8 +7151,13 @@ local.tee $8 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|1 @@ -7291,7 +7339,7 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $1 + local.tee $2 if i32.const 0 local.get $0 @@ -7300,24 +7348,29 @@ end local.get $0 call $~lib/util/number/decimalCount32 - local.get $1 + local.get $2 i32.add local.tee $3 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $2 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $1 local.get $0 local.get $3 call $~lib/util/number/utoa_dec_simple - local.get $1 + local.get $2 if - local.get $2 + local.get $1 i32.const 45 i32.store16 end - local.get $2 + local.get $1 call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) @@ -7396,7 +7449,11 @@ end local.get $4 local.get $2 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $5 i32.const 11 i32.add @@ -7406,8 +7463,13 @@ local.tee $7 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 @@ -7509,16 +7571,21 @@ end local.get $0 call $~lib/util/number/decimalCount32 - local.tee $1 + local.tee $2 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $2 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $1 local.get $0 - local.get $1 - call $~lib/util/number/utoa_dec_simple local.get $2 + call $~lib/util/number/utoa_dec_simple + local.get $1 call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) @@ -7575,7 +7642,11 @@ end local.get $4 local.get $2 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $5 i32.const 10 i32.add @@ -7585,8 +7656,13 @@ local.tee $7 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 @@ -8716,9 +8792,12 @@ local.set $0 br $__inlined_func$~lib/util/number/dtoa end + call $~lib/rt/tlsf/maybeInitialize i32.const 56 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 local.get $4 call $~lib/util/number/dtoa_core @@ -8747,7 +8826,11 @@ end local.get $5 local.get $3 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $6 i32.const 28 i32.add @@ -8757,8 +8840,13 @@ local.tee $8 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 @@ -8886,7 +8974,11 @@ i32.const 7840 local.set $1 local.get $5 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.set $8 loop $for-loop|0 local.get $3 @@ -9070,7 +9162,11 @@ i32.const 7840 local.set $1 local.get $5 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.set $8 loop $for-loop|0 local.get $3 @@ -9290,7 +9386,11 @@ end local.get $4 local.get $3 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $5 i32.const 11 i32.add @@ -9300,8 +9400,13 @@ local.tee $7 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 @@ -9439,7 +9544,11 @@ end local.get $4 local.get $3 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $5 i32.const 10 i32.add @@ -9449,8 +9558,13 @@ local.tee $7 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 @@ -9687,8 +9801,13 @@ local.tee $2 i32.const 1 i32.shl + local.set $0 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $0 local.get $1 local.get $2 @@ -9699,8 +9818,13 @@ local.tee $1 i32.const 1 i32.shl + local.set $0 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $0 local.get $5 local.get $1 @@ -9715,7 +9839,11 @@ end local.get $4 local.get $3 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $6 i32.const 20 i32.add @@ -9725,8 +9853,13 @@ local.tee $8 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 @@ -9804,36 +9937,111 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) + (func $~lib/util/number/itoa64 (param $0 i64) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) - local.get $1 - i64.const 0 - i64.lt_s + (local $4 i32) + local.get $0 + i64.eqz + if + i32.const 8448 + return + end + local.get $0 + i64.const 63 + i64.shr_u + i32.wrap_i64 local.tee $2 if - local.get $0 - i32.const 45 - i32.store16 i64.const 0 - local.get $1 + local.get $0 i64.sub - local.set $1 + local.set $0 end - local.get $1 - i64.const 10 - i64.lt_u + local.get $0 + i64.const 4294967295 + i64.le_u if local.get $0 + i32.wrap_i64 + local.tee $3 + call $~lib/util/number/decimalCount32 local.get $2 + i32.add + local.tee $4 i32.const 1 i32.shl - i32.add + local.set $1 + call $~lib/rt/tlsf/maybeInitialize local.get $1 - i64.const 48 - i64.or - i64.store16 - local.get $2 + i32.const 1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $1 + local.get $3 + local.get $4 + call $~lib/util/number/utoa_dec_simple + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.get $2 + i32.add + local.tee $3 + i32.const 1 + i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 + i32.const 1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $1 + local.get $0 + local.get $3 + call $~lib/util/number/utoa_dec_simple + end + local.get $2 + if + local.get $1 + i32.const 45 + i32.store16 + end + local.get $1 + call $~lib/rt/pure/__retain + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i64.const 0 + i64.lt_s + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + i64.const 0 + local.get $1 + i64.sub + local.set $1 + end + local.get $1 + i64.const 10 + i64.lt_u + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i64.const 48 + i64.or + i64.store16 + local.get $2 i32.const 1 i32.add return @@ -9867,117 +10075,66 @@ ) (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) i32.const 8144 call $~lib/rt/pure/__retain - local.set $4 + local.set $3 local.get $1 i32.const 1 i32.sub - local.tee $5 + local.tee $4 i32.const 0 i32.lt_s if - local.get $4 + local.get $3 call $~lib/rt/pure/__release i32.const 7840 return end - local.get $5 + local.get $4 i32.eqz if - block $__inlined_func$~lib/util/number/itoa64 (result i32) - i32.const 8448 - 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 $5 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $1 - local.get $2 - local.get $5 - 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 $4 + local.get $0 + i64.load + i32.wrap_i64 + i64.extend_i32_s + call $~lib/util/number/itoa64 + local.get $3 call $~lib/rt/pure/__release return end - local.get $5 local.get $4 - call $~lib/string/String#get:length - local.tee $6 + local.get $3 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $5 i32.const 21 i32.add i32.mul i32.const 21 i32.add - local.tee $8 + local.tee $7 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 - local.get $7 - local.get $5 + local.get $6 + local.get $4 i32.lt_s if local.get $1 @@ -9986,7 +10143,7 @@ i32.shl i32.add local.get $0 - local.get $7 + local.get $6 i32.const 3 i32.shl i32.add @@ -9995,38 +10152,38 @@ local.get $2 i32.add local.set $2 - local.get $6 + local.get $5 if local.get $1 local.get $2 i32.const 1 i32.shl i32.add - local.get $4 - local.get $6 + local.get $3 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $2 - local.get $6 + local.get $5 i32.add local.set $2 end - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|0 end end - local.get $8 + local.get $7 local.get $1 local.get $2 i32.const 1 i32.shl i32.add local.get $0 - local.get $5 + local.get $4 i32.const 3 i32.shl i32.add @@ -10040,13 +10197,13 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.get $4 + local.get $3 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release return end - local.get $4 + local.get $3 call $~lib/rt/pure/__release local.get $1 ) @@ -10107,7 +10264,11 @@ i32.const 7840 local.set $1 local.get $5 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.set $8 loop $for-loop|0 local.get $3 @@ -10296,7 +10457,11 @@ end local.get $4 local.get $2 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $5 i32.const 10 i32.add @@ -10306,8 +10471,13 @@ local.tee $7 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 @@ -10451,7 +10621,11 @@ i32.const 7840 local.set $1 local.get $5 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.set $8 loop $for-loop|0 local.get $3 @@ -10634,7 +10808,11 @@ i32.const 7840 local.set $1 local.get $5 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.set $8 loop $for-loop|0 local.get $3 @@ -10820,7 +10998,11 @@ i32.const 7840 local.set $1 local.get $5 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.set $8 loop $for-loop|0 local.get $3 @@ -10985,27 +11167,33 @@ br $for-loop|0 end end + call $~lib/rt/tlsf/maybeInitialize local.get $3 i32.const 2 i32.shl local.tee $2 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 3 - call $~lib/rt/tlsf/__alloc - local.tee $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $4 local.get $3 i32.store offset=12 - local.get $0 + local.get $4 local.get $2 i32.store offset=8 - local.get $0 local.get $4 - i32.store offset=4 local.get $0 + i32.store offset=4 local.get $4 + local.get $0 call $~lib/rt/pure/__retain i32.store i32.const 0 @@ -11023,8 +11211,8 @@ i32.load local.tee $3 if + local.get $0 local.get $1 - local.get $4 i32.add local.get $3 i32.load offset=4 @@ -11044,7 +11232,7 @@ br $for-loop|1 end end - local.get $0 + local.get $4 call $~lib/rt/pure/__retain ) (func $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#flat (param $0 i32) (result i32) @@ -11089,16 +11277,22 @@ br $for-loop|0 end end + call $~lib/rt/tlsf/maybeInitialize local.get $3 i32.const 2 i32.shl local.tee $2 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 27 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $4 local.get $3 i32.store offset=12 @@ -11204,8 +11398,8 @@ (local $27 i32) (local $28 i32) (local $29 i32) - (local $30 f32) - (local $31 f64) + (local $30 f64) + (local $31 f32) (local $32 i32) (local $33 i32) (local $34 i32) @@ -11247,55 +11441,65 @@ end i32.const 0 call $std/array/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 5 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $2 + local.tee $0 i32.eqz if + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 2 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.set $2 + local.set $0 end - local.get $2 + local.get $0 i32.const 0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 + call $~lib/rt/tlsf/maybeInitialize i32.const 1 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $1 i32.const 0 i32.const 1 call $~lib/memory/memory.fill + local.get $1 + local.set $2 + local.get $1 local.get $0 - local.tee $3 - local.get $2 i32.load - local.tee $1 + local.tee $3 i32.ne if - local.get $3 + local.get $2 call $~lib/rt/pure/__retain - local.set $3 - local.get $1 + local.set $2 + local.get $3 call $~lib/rt/pure/__release end + local.get $0 local.get $2 - local.get $3 i32.store - local.get $2 local.get $0 + local.get $1 i32.store offset=4 - local.get $2 + local.get $0 i32.const 1 i32.store offset=8 global.get $std/array/arr @@ -11310,7 +11514,7 @@ unreachable end call $~lib/rt/pure/__release - local.get $2 + local.get $0 call $~lib/rt/pure/__release i32.const 5 i32.const 0 @@ -11318,20 +11522,20 @@ i32.const 1440 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $0 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $5 + local.get $0 i32.const 5 i32.const 0 i32.const 6 i32.const 1472 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $1 call $std/array/isArraysEqual i32.eqz if @@ -11342,20 +11546,20 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $0 i32.const 0 i32.const 0 i32.const 2147483647 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $5 + local.get $0 i32.const 5 i32.const 0 i32.const 6 i32.const 1568 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $2 call $std/array/isArraysEqual i32.eqz if @@ -11366,20 +11570,20 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $0 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $5 + local.get $0 i32.const 5 i32.const 0 i32.const 6 i32.const 1600 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $4 call $std/array/isArraysEqual i32.eqz if @@ -11390,20 +11594,20 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $0 i32.const 2 i32.const -2 i32.const 2147483647 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $5 + local.get $0 i32.const 5 i32.const 0 i32.const 6 i32.const 1632 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 + local.tee $3 call $std/array/isArraysEqual i32.eqz if @@ -11414,20 +11618,20 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $0 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $5 + local.get $0 i32.const 5 i32.const 0 i32.const 6 i32.const 1664 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $57 call $std/array/isArraysEqual i32.eqz if @@ -11438,17 +11642,17 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $0 call $~lib/rt/pure/__release - local.get $6 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 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 $0 + local.get $57 call $~lib/rt/pure/__release i32.const 5 i32.const 2 @@ -11456,20 +11660,20 @@ i32.const 1696 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $0 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $5 + local.get $0 i32.const 5 i32.const 2 i32.const 7 i32.const 1744 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11481,20 +11685,20 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $0 i32.const 0 i32.const 0 i32.const 2147483647 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $5 + local.get $0 i32.const 5 i32.const 2 i32.const 7 i32.const 1792 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11506,20 +11710,20 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $0 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $5 + local.get $0 i32.const 5 i32.const 2 i32.const 7 i32.const 1840 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11531,20 +11735,20 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $0 i32.const 2 i32.const -2 i32.const 2147483647 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $5 + local.get $0 i32.const 5 i32.const 2 i32.const 7 i32.const 1888 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 + local.tee $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11556,20 +11760,20 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $0 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill call $~lib/rt/pure/__release - local.get $5 + local.get $0 i32.const 5 i32.const 2 i32.const 7 i32.const 1936 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $57 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -11581,17 +11785,17 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $0 call $~lib/rt/pure/__release - local.get $6 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 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 $0 + local.get $57 call $~lib/rt/pure/__release global.get $std/array/arr i32.load offset=12 @@ -11856,20 +12060,20 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 - i32.load offset=4 local.tee $0 + i32.load offset=4 + local.tee $1 i32.const 0 call $std/array/Ref#constructor i32.store - local.get $0 + local.get $1 i32.const 0 call $std/array/Ref#constructor i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#set:length - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -11879,15 +12083,15 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 call $~lib/rt/pure/__release i32.const 0 call $~lib/array/Array#constructor - local.set $4 + local.set $1 global.get $std/array/arr - local.get $4 + local.get $1 call $~lib/array/Array#concat - local.set $1 + local.set $2 global.get $std/array/arr call $std/array/internalCapacity i32.const 3 @@ -11912,7 +12116,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=12 i32.const 3 i32.ne @@ -11924,14 +12128,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 0 i32.const 2 i32.const 3 i32.const 2032 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $3 call $~lib/array/Array#concat call $~lib/rt/pure/__release global.get $std/array/arr @@ -11946,7 +12150,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -11959,7 +12163,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -11972,7 +12176,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -11985,19 +12189,19 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.const 46 call $~lib/array/Array#push drop - local.get $4 + local.get $1 i32.const 47 call $~lib/array/Array#push drop global.get $std/array/arr - local.get $4 - call $~lib/array/Array#concat - local.set $6 local.get $1 + call $~lib/array/Array#concat + local.set $0 + local.get $2 call $~lib/rt/pure/__release global.get $std/array/arr call $std/array/internalCapacity @@ -12011,7 +12215,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.load offset=12 i32.const 2 i32.ne @@ -12023,7 +12227,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.load offset=12 i32.const 5 i32.ne @@ -12035,7 +12239,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -12048,7 +12252,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -12061,7 +12265,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -12074,7 +12278,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -12087,7 +12291,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -12100,10 +12304,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 call $~lib/array/Array#pop drop - local.get $6 + local.get $0 i32.load offset=12 i32.const 4 i32.ne @@ -12121,7 +12325,7 @@ i32.const 2048 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $2 i32.load offset=12 if i32.const 0 @@ -12131,13 +12335,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 global.get $std/array/arr call $~lib/array/Array#concat - local.set $1 - local.get $6 + local.set $4 + local.get $0 call $~lib/rt/pure/__release - local.get $1 + local.get $4 i32.load offset=12 i32.const 3 i32.ne @@ -12149,7 +12353,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.load offset=12 if i32.const 0 @@ -12159,14 +12363,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 - call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $4 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release i32.const 5 i32.const 2 i32.const 3 @@ -12178,14 +12382,14 @@ i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $21 + local.tee $2 i32.const 5 i32.const 2 i32.const 3 i32.const 2112 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $22 + local.tee $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12211,14 +12415,14 @@ i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $23 + local.tee $3 i32.const 5 i32.const 2 i32.const 3 i32.const 2208 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $24 + local.tee $57 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12236,22 +12440,21 @@ i32.const 2256 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 1 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $11 + local.tee $41 i32.const 5 i32.const 2 i32.const 3 i32.const 2304 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $17 + local.tee $56 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12269,21 +12472,21 @@ i32.const 2352 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $0 + local.get $1 call $~lib/rt/pure/__release - local.tee $0 + local.tee $1 i32.const 2 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $18 + local.tee $55 i32.const 5 i32.const 2 i32.const 3 i32.const 2400 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $19 + local.tee $54 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12301,21 +12504,21 @@ i32.const 2448 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $0 + local.get $1 call $~lib/rt/pure/__release - local.tee $0 + local.tee $1 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $12 + local.tee $53 i32.const 5 i32.const 2 i32.const 3 i32.const 2496 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $13 + local.tee $51 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12333,21 +12536,21 @@ i32.const 2544 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $0 + local.get $1 call $~lib/rt/pure/__release - local.tee $0 + local.tee $1 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $14 + local.tee $52 i32.const 5 i32.const 2 i32.const 3 i32.const 2592 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $15 + local.tee $50 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12365,21 +12568,21 @@ i32.const 2640 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $0 + local.get $1 call $~lib/rt/pure/__release - local.tee $0 + local.tee $1 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $16 + local.tee $49 i32.const 5 i32.const 2 i32.const 3 i32.const 2688 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $2 + local.tee $38 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12397,21 +12600,21 @@ i32.const 2736 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $0 + local.get $1 call $~lib/rt/pure/__release - local.tee $0 + local.tee $1 i32.const 0 i32.const -2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $10 + local.tee $47 i32.const 5 i32.const 2 i32.const 3 i32.const 2784 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $46 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12429,21 +12632,21 @@ i32.const 2832 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $0 + local.get $1 call $~lib/rt/pure/__release - local.tee $0 + local.tee $1 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.tee $7 + local.tee $45 i32.const 5 i32.const 2 i32.const 3 i32.const 2880 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $9 + local.tee $48 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12461,21 +12664,21 @@ i32.const 2928 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $0 + local.get $1 call $~lib/rt/pure/__release - local.tee $0 + local.tee $1 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.tee $5 + local.tee $42 i32.const 5 i32.const 2 i32.const 3 i32.const 2976 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $44 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12493,21 +12696,21 @@ i32.const 3024 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $0 + local.get $1 call $~lib/rt/pure/__release - local.tee $0 + local.tee $1 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.tee $4 + local.tee $43 i32.const 5 i32.const 2 i32.const 3 i32.const 3072 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $40 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12525,10 +12728,10 @@ i32.const 3120 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $20 - local.get $0 + local.set $0 + local.get $1 call $~lib/rt/pure/__release - local.get $20 + local.get $0 i32.const -4 i32.const -3 i32.const 2147483647 @@ -12540,7 +12743,7 @@ i32.const 3168 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $39 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12552,55 +12755,55 @@ call $~lib/builtins/abort unreachable end - local.get $20 + local.get $0 call $~lib/rt/pure/__release - local.get $21 + local.get $2 call $~lib/rt/pure/__release - local.get $22 + local.get $4 call $~lib/rt/pure/__release - local.get $23 + local.get $3 call $~lib/rt/pure/__release - local.get $24 + local.get $57 call $~lib/rt/pure/__release - local.get $11 + local.get $41 call $~lib/rt/pure/__release - local.get $17 + local.get $56 call $~lib/rt/pure/__release - local.get $18 + local.get $55 call $~lib/rt/pure/__release - local.get $19 + local.get $54 call $~lib/rt/pure/__release - local.get $12 + local.get $53 call $~lib/rt/pure/__release - local.get $13 + local.get $51 call $~lib/rt/pure/__release - local.get $14 + local.get $52 call $~lib/rt/pure/__release - local.get $15 + local.get $50 call $~lib/rt/pure/__release - local.get $16 + local.get $49 call $~lib/rt/pure/__release - local.get $2 + local.get $38 call $~lib/rt/pure/__release - local.get $10 + local.get $47 call $~lib/rt/pure/__release - local.get $8 + local.get $46 call $~lib/rt/pure/__release - local.get $7 + local.get $45 call $~lib/rt/pure/__release - local.get $9 + local.get $48 call $~lib/rt/pure/__release - local.get $5 + local.get $42 call $~lib/rt/pure/__release - local.get $6 + local.get $44 call $~lib/rt/pure/__release - local.get $4 + local.get $43 call $~lib/rt/pure/__release - local.get $3 + local.get $40 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $39 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 42 @@ -13180,34 +13383,34 @@ i32.const 3216 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 - local.set $0 + local.tee $1 + local.set $4 i32.const 0 - local.set $3 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf i32.const 0 - local.get $6 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $2 i32.ge_s i32.const 1 - local.get $1 + local.get $2 select if i32.const -1 - local.set $3 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf end - local.get $0 + local.get $4 i32.load offset=4 - local.set $0 + local.set $4 loop $while-continue|0 - local.get $3 - local.get $1 + local.get $0 + local.get $2 i32.lt_s if + local.get $4 local.get $0 - local.get $3 i32.const 2 i32.shl i32.add @@ -13215,17 +13418,17 @@ f32.const nan:0x400000 f32.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.const -1 i32.ne if @@ -13242,34 +13445,34 @@ i32.const 3248 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 - local.set $0 - i32.const 0 + local.tee $2 local.set $3 + i32.const 0 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf i32.const 0 - local.get $4 + local.get $2 i32.load offset=12 - local.tee $1 + local.tee $4 i32.ge_s i32.const 1 - local.get $1 + local.get $4 select if i32.const -1 - local.set $3 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf end - local.get $0 + local.get $3 i32.load offset=4 - local.set $0 - loop $while-continue|019 - local.get $3 - local.get $1 + local.set $3 + loop $while-continue|021 + local.get $0 + local.get $4 i32.lt_s if - local.get $0 local.get $3 + local.get $0 i32.const 3 i32.shl i32.add @@ -13277,17 +13480,17 @@ f64.const nan:0x8000000000000 f64.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 - br $while-continue|019 + local.set $0 + br $while-continue|021 end end i32.const -1 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.const -1 i32.ne if @@ -13298,16 +13501,16 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $1 call $~lib/rt/pure/__release - local.get $4 + local.get $2 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 44 i32.const 0 - call $~lib/array/Array#includes - i32.const 1 - i32.ne + call $~lib/array/Array#indexOf + i32.const 0 + i32.lt_s if i32.const 0 i32.const 1296 @@ -13319,9 +13522,9 @@ global.get $std/array/arr i32.const 42 i32.const 0 - call $~lib/array/Array#includes - i32.const 1 - i32.ne + call $~lib/array/Array#indexOf + i32.const 0 + i32.lt_s if i32.const 0 i32.const 1296 @@ -13333,7 +13536,9 @@ global.get $std/array/arr i32.const 45 i32.const 0 - call $~lib/array/Array#includes + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s if i32.const 0 i32.const 1296 @@ -13345,7 +13550,9 @@ global.get $std/array/arr i32.const 43 i32.const 100 - call $~lib/array/Array#includes + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s if i32.const 0 i32.const 1296 @@ -13357,9 +13564,9 @@ global.get $std/array/arr i32.const 43 i32.const -100 - call $~lib/array/Array#includes - i32.const 1 - i32.ne + call $~lib/array/Array#indexOf + i32.const 0 + i32.lt_s if i32.const 0 i32.const 1296 @@ -13371,9 +13578,9 @@ global.get $std/array/arr i32.const 43 i32.const -2 - call $~lib/array/Array#includes - i32.const 1 - i32.ne + call $~lib/array/Array#indexOf + i32.const 0 + i32.lt_s if i32.const 0 i32.const 1296 @@ -13385,9 +13592,9 @@ global.get $std/array/arr i32.const 43 i32.const -4 - call $~lib/array/Array#includes - i32.const 1 - i32.ne + call $~lib/array/Array#indexOf + i32.const 0 + i32.lt_s if i32.const 0 i32.const 1296 @@ -13399,9 +13606,9 @@ global.get $std/array/arr i32.const 43 i32.const 0 - call $~lib/array/Array#includes - i32.const 1 - i32.ne + call $~lib/array/Array#indexOf + i32.const 0 + i32.lt_s if i32.const 0 i32.const 1296 @@ -13413,9 +13620,9 @@ global.get $std/array/arr i32.const 43 i32.const 1 - call $~lib/array/Array#includes - i32.const 1 - i32.ne + call $~lib/array/Array#indexOf + i32.const 0 + i32.lt_s if i32.const 0 i32.const 1296 @@ -13427,9 +13634,9 @@ global.get $std/array/arr i32.const 43 i32.const 2 - call $~lib/array/Array#includes - i32.const 1 - i32.ne + call $~lib/array/Array#indexOf + i32.const 0 + i32.lt_s if i32.const 0 i32.const 1296 @@ -13440,7 +13647,7 @@ end block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $2 + local.set $57 i32.const 0 i32.const 0 i32.const 1 @@ -13449,7 +13656,7 @@ i32.const 3280 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $2 i32.load offset=12 local.tee $1 i32.ge_s @@ -13458,36 +13665,36 @@ select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $6 + local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|020 - local.get $2 + local.set $4 + loop $while-continue|031 + local.get $57 local.get $1 i32.lt_s if i32.const 1 i32.const 1 - local.get $0 - local.get $2 + local.get $4 + local.get $57 i32.const 2 i32.shl i32.add f32.load - local.tee $30 - local.get $30 + local.tee $31 + local.get $31 f32.ne - local.get $30 + local.get $31 f32.const nan:0x400000 f32.eq select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $2 + local.get $57 i32.const 1 i32.add - local.set $2 - br $while-continue|020 + local.set $57 + br $while-continue|031 end end i32.const 0 @@ -13503,7 +13710,7 @@ end block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $3 + local.set $0 i32.const 0 i32.const 0 i32.const 1 @@ -13514,43 +13721,43 @@ call $~lib/rt/pure/__retain local.tee $4 i32.load offset=12 - local.tee $1 + local.tee $3 i32.ge_s i32.const 1 - local.get $1 + local.get $3 select br_if $__inlined_func$~lib/array/Array#includes drop local.get $4 i32.load offset=4 - local.set $0 - loop $while-continue|021 + local.set $57 + loop $while-continue|032 + local.get $0 local.get $3 - local.get $1 i32.lt_s if i32.const 1 i32.const 1 + local.get $57 local.get $0 - local.get $3 i32.const 3 i32.shl i32.add f64.load - local.tee $31 - local.get $31 + local.tee $30 + local.get $30 f64.ne - local.get $31 + local.get $30 f64.const nan:0x8000000000000 f64.eq select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 - br $while-continue|021 + local.set $0 + br $while-continue|032 end end i32.const 0 @@ -13619,7 +13826,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $2 call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release @@ -13629,18 +13836,18 @@ i32.const 3344 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $1 i32.const 0 i32.const 2147483647 call $~lib/array/Array#splice - local.tee $35 + local.tee $57 i32.const 5 i32.const 2 i32.const 3 i32.const 3392 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $36 + local.tee $56 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13652,14 +13859,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 i32.const 2 i32.const 3 i32.const 3440 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $37 + local.tee $55 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13677,21 +13884,21 @@ i32.const 3456 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 0 i32.const 0 call $~lib/array/Array#splice - local.tee $38 + local.tee $54 i32.const 0 i32.const 2 i32.const 3 i32.const 3504 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $39 + local.tee $53 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13703,14 +13910,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 5 i32.const 2 i32.const 3 i32.const 3520 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $40 + local.tee $51 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13728,20 +13935,20 @@ i32.const 3568 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $1 + local.get $0 call $~lib/rt/pure/__release - local.tee $1 + local.tee $0 i32.const 2 i32.const 2147483647 call $~lib/array/Array#splice - local.tee $41 + local.tee $52 i32.const 3 i32.const 2 i32.const 3 i32.const 3616 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $42 + local.tee $50 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13753,14 +13960,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 2 i32.const 2 i32.const 3 i32.const 3648 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $43 + local.tee $49 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13778,20 +13985,20 @@ i32.const 3680 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $1 + local.get $0 call $~lib/rt/pure/__release - local.tee $1 + local.tee $0 i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.tee $44 + local.tee $47 i32.const 2 i32.const 2 i32.const 3 i32.const 3728 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $45 + local.tee $46 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13803,14 +14010,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.const 2 i32.const 3 i32.const 3760 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $46 + local.tee $45 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13828,20 +14035,20 @@ i32.const 3792 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $1 + local.get $0 call $~lib/rt/pure/__release - local.tee $1 + local.tee $0 i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.tee $47 + local.tee $48 i32.const 1 i32.const 2 i32.const 3 i32.const 3840 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $48 + local.tee $42 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13853,14 +14060,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 4 i32.const 2 i32.const 3 i32.const 3872 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $49 + local.tee $44 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13878,20 +14085,20 @@ i32.const 3904 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $1 + local.get $0 call $~lib/rt/pure/__release - local.tee $1 + local.tee $0 i32.const -1 i32.const 2147483647 call $~lib/array/Array#splice - local.tee $50 + local.tee $43 i32.const 1 i32.const 2 i32.const 3 i32.const 3952 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $51 + local.tee $40 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13903,14 +14110,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 4 i32.const 2 i32.const 3 i32.const 3984 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $52 + local.tee $39 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13928,20 +14135,20 @@ i32.const 4016 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $1 + local.get $0 call $~lib/rt/pure/__release - local.tee $1 + local.tee $0 i32.const -2 i32.const 2147483647 call $~lib/array/Array#splice - local.tee $53 + local.tee $37 i32.const 2 i32.const 2 i32.const 3 i32.const 4064 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $54 + local.tee $36 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13953,14 +14160,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.const 2 i32.const 3 i32.const 4096 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $55 + local.tee $35 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -13978,20 +14185,20 @@ i32.const 4128 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $1 + local.get $0 call $~lib/rt/pure/__release - local.tee $1 + local.tee $0 i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.tee $56 + local.tee $34 i32.const 1 i32.const 2 i32.const 3 i32.const 4176 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $57 + local.tee $33 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14003,14 +14210,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 4 i32.const 2 i32.const 3 i32.const 4208 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $26 + local.tee $32 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14028,20 +14235,20 @@ i32.const 4240 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $1 + local.get $0 call $~lib/rt/pure/__release - local.tee $1 + local.tee $0 i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.tee $27 + local.tee $29 i32.const 1 i32.const 2 i32.const 3 i32.const 4288 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $20 + local.tee $28 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14053,14 +14260,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 4 i32.const 2 i32.const 3 i32.const 4320 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $21 + local.tee $27 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14078,20 +14285,20 @@ i32.const 4352 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $1 + local.get $0 call $~lib/rt/pure/__release - local.tee $1 + local.tee $0 i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.tee $22 + local.tee $26 i32.const 0 i32.const 2 i32.const 3 i32.const 4400 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $23 + local.tee $25 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14103,7 +14310,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 5 i32.const 2 i32.const 3 @@ -14128,20 +14335,20 @@ i32.const 4464 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $1 + local.get $0 call $~lib/rt/pure/__release - local.tee $1 + local.tee $0 i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.tee $11 + local.tee $23 i32.const 0 i32.const 2 i32.const 3 i32.const 4512 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $17 + local.tee $22 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14153,14 +14360,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 5 i32.const 2 i32.const 3 i32.const 4528 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $18 + local.tee $21 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14178,20 +14385,20 @@ i32.const 4576 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $1 + local.get $0 call $~lib/rt/pure/__release - local.tee $1 + local.tee $0 i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.tee $19 + local.tee $20 i32.const 0 i32.const 2 i32.const 3 i32.const 4624 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $12 + local.tee $19 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14203,14 +14410,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 5 i32.const 2 i32.const 3 i32.const 4640 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $13 + local.tee $18 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14228,20 +14435,20 @@ i32.const 4688 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.get $1 + local.get $0 call $~lib/rt/pure/__release - local.tee $1 + local.tee $0 i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.tee $14 + local.tee $17 i32.const 0 i32.const 2 i32.const 3 i32.const 4736 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $15 + local.tee $16 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14253,14 +14460,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 5 i32.const 2 i32.const 3 i32.const 4752 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $16 + local.tee $15 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14278,21 +14485,20 @@ i32.const 4800 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $0 - local.get $1 - call $~lib/rt/pure/__release local.get $0 + call $~lib/rt/pure/__release + local.tee $0 i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.tee $2 + local.tee $14 i32.const 0 i32.const 2 i32.const 3 i32.const 4848 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $10 + local.tee $13 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14311,7 +14517,7 @@ i32.const 4864 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $8 + local.tee $12 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14329,10 +14535,10 @@ i32.const 4912 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $4 i32.const 1 call $~lib/array/Array#splice - local.tee $1 + local.tee $3 i32.load offset=12 if i32.const 0 @@ -14342,7 +14548,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.load offset=12 if i32.const 0 @@ -14358,37 +14564,37 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $25 + local.tee $1 i32.load offset=4 - local.tee $4 + local.tee $2 i32.const 1 call $std/array/Ref#constructor i32.store - local.get $4 + local.get $2 i32.const 2 call $std/array/Ref#constructor i32.store offset=4 - local.get $4 + local.get $2 i32.const 3 call $std/array/Ref#constructor i32.store offset=8 - local.get $4 + local.get $2 i32.const 4 call $std/array/Ref#constructor i32.store offset=12 - local.get $4 + local.get $2 i32.const 5 call $std/array/Ref#constructor i32.store offset=16 - local.get $3 + local.get $4 call $~lib/rt/pure/__release - local.get $25 + local.get $1 i32.const 2 call $~lib/array/Array#splice - local.set $29 - local.get $1 + local.set $2 + local.get $3 call $~lib/rt/pure/__release - local.get $29 + local.get $2 i32.load offset=12 i32.const 2 i32.ne @@ -14400,10 +14606,10 @@ call $~lib/builtins/abort unreachable end - local.get $29 + local.get $2 i32.const 0 call $~lib/array/Array#__get - local.tee $7 + local.tee $11 i32.load i32.const 3 i32.ne @@ -14415,10 +14621,10 @@ call $~lib/builtins/abort unreachable end - local.get $29 + local.get $2 i32.const 1 call $~lib/array/Array#__get - local.tee $9 + local.tee $10 i32.load i32.const 4 i32.ne @@ -14430,7 +14636,7 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -14442,10 +14648,10 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $1 i32.const 0 call $~lib/array/Array#__get - local.tee $5 + local.tee $9 i32.load i32.const 1 i32.ne @@ -14457,10 +14663,10 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $1 i32.const 1 call $~lib/array/Array#__get - local.tee $6 + local.tee $8 i32.load i32.const 2 i32.ne @@ -14472,10 +14678,10 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $1 i32.const 2 call $~lib/array/Array#__get - local.tee $4 + local.tee $7 i32.load i32.const 5 i32.ne @@ -14493,22 +14699,22 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $28 + local.tee $41 i32.load offset=4 - local.tee $1 + local.tee $4 i32.const 1 call $std/array/Ref#constructor i32.store - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 2 call $std/array/Ref#constructor i32.store offset=8 - local.get $28 + local.get $41 call $~lib/array/Array#splice - local.tee $32 + local.tee $38 i32.load offset=12 i32.const 1 i32.ne @@ -14520,11 +14726,11 @@ call $~lib/builtins/abort unreachable end - local.get $32 + local.get $38 i32.const 0 call $~lib/array/Array#__get - local.tee $33 - local.get $33 + local.tee $4 + local.get $4 i32.eqz if i32.const 5040 @@ -14545,7 +14751,7 @@ call $~lib/builtins/abort unreachable end - local.get $28 + local.get $41 i32.load offset=12 i32.const 2 i32.ne @@ -14557,10 +14763,10 @@ call $~lib/builtins/abort unreachable end - local.get $28 + local.get $41 i32.const 0 call $~lib/array/Array#__get - local.tee $3 + local.tee $6 if i32.const 0 i32.const 1296 @@ -14569,11 +14775,11 @@ call $~lib/builtins/abort unreachable end - local.get $28 + local.get $41 i32.const 1 call $~lib/array/Array#__get - local.tee $34 - local.get $34 + local.tee $3 + local.get $3 i32.eqz if i32.const 5040 @@ -14596,106 +14802,106 @@ end local.get $0 call $~lib/rt/pure/__release - local.get $35 - call $~lib/rt/pure/__release - local.get $36 + local.get $57 call $~lib/rt/pure/__release - local.get $37 + local.get $56 call $~lib/rt/pure/__release - local.get $38 + local.get $55 call $~lib/rt/pure/__release - local.get $39 + local.get $54 call $~lib/rt/pure/__release - local.get $40 + local.get $53 call $~lib/rt/pure/__release - local.get $41 + local.get $51 call $~lib/rt/pure/__release - local.get $42 + local.get $52 call $~lib/rt/pure/__release - local.get $43 + local.get $50 call $~lib/rt/pure/__release - local.get $44 + local.get $49 call $~lib/rt/pure/__release - local.get $45 + local.get $47 call $~lib/rt/pure/__release local.get $46 call $~lib/rt/pure/__release - local.get $47 + local.get $45 call $~lib/rt/pure/__release local.get $48 call $~lib/rt/pure/__release - local.get $49 + local.get $42 call $~lib/rt/pure/__release - local.get $50 + local.get $44 call $~lib/rt/pure/__release - local.get $51 + local.get $43 call $~lib/rt/pure/__release - local.get $52 + local.get $40 call $~lib/rt/pure/__release - local.get $53 + local.get $39 call $~lib/rt/pure/__release - local.get $54 + local.get $37 call $~lib/rt/pure/__release - local.get $55 + local.get $36 call $~lib/rt/pure/__release - local.get $56 + local.get $35 call $~lib/rt/pure/__release - local.get $57 + local.get $34 call $~lib/rt/pure/__release - local.get $26 + local.get $33 call $~lib/rt/pure/__release - local.get $27 + local.get $32 call $~lib/rt/pure/__release - local.get $20 + local.get $29 call $~lib/rt/pure/__release - local.get $21 + local.get $28 call $~lib/rt/pure/__release - local.get $22 + local.get $27 call $~lib/rt/pure/__release - local.get $23 + 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 $11 + local.get $23 call $~lib/rt/pure/__release - local.get $17 + local.get $22 call $~lib/rt/pure/__release - local.get $18 + local.get $21 + call $~lib/rt/pure/__release + local.get $20 call $~lib/rt/pure/__release local.get $19 call $~lib/rt/pure/__release - local.get $12 + local.get $18 call $~lib/rt/pure/__release - local.get $13 + local.get $17 call $~lib/rt/pure/__release - local.get $14 + local.get $16 call $~lib/rt/pure/__release local.get $15 call $~lib/rt/pure/__release - local.get $16 + local.get $14 call $~lib/rt/pure/__release - local.get $2 + local.get $13 call $~lib/rt/pure/__release - local.get $10 + local.get $12 call $~lib/rt/pure/__release - local.get $8 + local.get $11 call $~lib/rt/pure/__release - local.get $7 + local.get $10 call $~lib/rt/pure/__release local.get $9 call $~lib/rt/pure/__release - local.get $5 + local.get $8 call $~lib/rt/pure/__release - local.get $6 + local.get $7 call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $33 + local.get $6 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $34 - call $~lib/rt/pure/__release global.get $std/array/arr i32.const 0 i32.const 0 @@ -15176,19 +15382,19 @@ unreachable end i32.const 0 - local.set $3 + local.set $0 loop $for-loop|0 - local.get $3 + local.get $0 i32.const 100 i32.lt_s if global.get $std/array/arr call $~lib/array/Array#pop drop - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|0 end end @@ -15209,62 +15415,62 @@ call $~lib/array/Array#push drop i32.const 0 - local.set $3 + local.set $0 global.get $std/array/arr - local.tee $9 + local.tee $4 i32.load offset=12 - local.tee $6 + local.tee $56 i32.const 2 i32.const 9 i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $3 i32.load offset=4 - local.set $4 - loop $for-loop|039 - local.get $3 - local.get $6 - local.get $9 - i32.load offset=12 - local.tee $0 - local.get $6 + local.set $55 + loop $for-loop|050 local.get $0 + local.get $56 + local.get $4 + i32.load offset=12 + local.tee $54 + local.get $56 + local.get $54 i32.lt_s select i32.lt_s if - local.get $3 + local.get $0 i32.const 2 i32.shl - local.tee $1 - local.get $9 + local.tee $54 + local.get $4 i32.load offset=4 i32.add i32.load - local.set $0 + local.set $53 i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $4 + local.get $54 + local.get $55 i32.add + local.get $53 local.get $0 - local.get $3 - local.get $9 + local.get $4 i32.const 5760 i32.load call_indirect (type $i32_i32_i32_=>_f32) f32.store - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|039 + local.set $0 + br $for-loop|050 end end i32.const 5760 call $~lib/rt/pure/__release - local.get $5 + local.get $3 i32.load offset=12 i32.const 4 i32.ne @@ -15276,7 +15482,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const 0 call $~lib/array/Array#__get global.get $std/array/arr @@ -15387,7 +15593,7 @@ i32.const 3 call $~lib/array/Array#push drop - local.get $5 + local.get $3 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 5888 @@ -15814,22 +16020,23 @@ i32.const 6704 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $17 + local.set $4 i32.const 0 global.set $~argumentsLength - local.get $17 + local.get $4 + i32.const 6752 call $~lib/array/Array#sort i32.const 6752 call $~lib/rt/pure/__release call $~lib/rt/pure/__release - local.get $17 + local.get $4 i32.const 8 i32.const 2 i32.const 9 i32.const 6784 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $45 call $std/array/isArraysEqual i32.eqz if @@ -15846,22 +16053,23 @@ i32.const 6832 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $18 + local.set $3 i32.const 0 global.set $~argumentsLength - local.get $18 + local.get $3 + i32.const 6912 call $~lib/array/Array#sort i32.const 6912 call $~lib/rt/pure/__release call $~lib/rt/pure/__release - local.get $18 + local.get $3 i32.const 8 i32.const 3 i32.const 10 i32.const 6944 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $6 + local.tee $48 call $std/array/isArraysEqual i32.eqz if @@ -15878,23 +16086,23 @@ i32.const 7024 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $19 + local.set $57 i32.const 0 global.set $~argumentsLength - local.get $19 + local.get $57 i32.const 7072 call $~lib/array/Array#sort i32.const 7072 call $~lib/rt/pure/__release call $~lib/rt/pure/__release - local.get $19 + local.get $57 i32.const 5 i32.const 2 i32.const 3 i32.const 7104 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $42 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15912,21 +16120,21 @@ i32.const 7152 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $12 + local.set $56 i32.const 0 global.set $~argumentsLength - local.get $12 + local.get $56 i32.const 0 call $~lib/array/Array#sort@varargs call $~lib/rt/pure/__release - local.get $12 + local.get $56 i32.const 5 i32.const 2 i32.const 7 i32.const 7232 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 + local.tee $44 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15944,62 +16152,62 @@ i32.const 7280 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $7 + local.set $47 i32.const 1 i32.const 2 i32.const 3 i32.const 7296 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $13 + local.set $55 i32.const 2 i32.const 2 i32.const 3 i32.const 7328 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $14 + local.set $54 i32.const 4 i32.const 2 i32.const 3 i32.const 7360 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $15 + local.set $53 i32.const 4 i32.const 2 i32.const 3 i32.const 7392 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $11 + local.set $0 i32.const 64 call $std/array/createReverseOrderedArray - local.set $16 + local.set $51 i32.const 128 call $std/array/createReverseOrderedArray - local.set $2 + local.set $52 i32.const 1024 call $std/array/createReverseOrderedArray - local.set $10 + local.set $50 i32.const 10000 call $std/array/createReverseOrderedArray - local.set $8 + local.set $49 i32.const 512 call $std/array/createRandomOrderedArray - local.set $9 - local.get $7 + local.set $46 + local.get $47 call $std/array/assertSortedDefault - local.get $13 + local.get $55 call $std/array/assertSortedDefault - local.get $13 + local.get $55 i32.const 1 i32.const 2 i32.const 3 i32.const 7456 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 + local.tee $43 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16011,16 +16219,16 @@ call $~lib/builtins/abort unreachable end - local.get $14 + local.get $54 call $std/array/assertSortedDefault - local.get $14 + local.get $54 i32.const 2 i32.const 2 i32.const 3 i32.const 7488 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $40 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16032,10 +16240,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $53 call $std/array/assertSortedDefault - local.get $15 - local.get $11 + local.get $53 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16047,10 +16255,10 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $51 call $std/array/assertSortedDefault - local.get $16 - local.get $11 + local.get $51 + local.get $0 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -16062,10 +16270,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $52 call $std/array/assertSortedDefault - local.get $2 - local.get $11 + local.get $52 + local.get $0 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -16077,10 +16285,10 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $50 call $std/array/assertSortedDefault - local.get $10 - local.get $11 + local.get $50 + local.get $0 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -16092,10 +16300,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $49 call $std/array/assertSortedDefault - local.get $8 - local.get $11 + local.get $49 + local.get $0 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -16107,72 +16315,154 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $46 call $std/array/assertSortedDefault - local.get $17 + local.get $4 call $~lib/rt/pure/__release - local.get $5 + local.get $45 call $~lib/rt/pure/__release - local.get $18 + local.get $3 call $~lib/rt/pure/__release - local.get $6 + local.get $48 call $~lib/rt/pure/__release - local.get $19 + local.get $57 call $~lib/rt/pure/__release - local.get $4 + local.get $42 call $~lib/rt/pure/__release - local.get $12 + local.get $56 call $~lib/rt/pure/__release - local.get $3 + local.get $44 call $~lib/rt/pure/__release - local.get $7 + local.get $47 call $~lib/rt/pure/__release - local.get $13 + local.get $55 call $~lib/rt/pure/__release - local.get $14 + local.get $54 call $~lib/rt/pure/__release - local.get $15 + local.get $53 call $~lib/rt/pure/__release - local.get $11 + local.get $0 call $~lib/rt/pure/__release - local.get $16 + local.get $51 call $~lib/rt/pure/__release - local.get $2 + local.get $52 call $~lib/rt/pure/__release - local.get $10 + local.get $50 call $~lib/rt/pure/__release - local.get $8 + local.get $49 call $~lib/rt/pure/__release - local.get $9 + local.get $46 call $~lib/rt/pure/__release - local.get $1 + local.get $43 call $~lib/rt/pure/__release - local.get $0 + local.get $40 call $~lib/rt/pure/__release i32.const 64 call $std/array/createRandomOrderedArray - local.set $1 + local.set $0 i32.const 257 call $std/array/createRandomOrderedArray - local.set $0 - local.get $1 + local.set $4 + local.get $0 i32.const 7520 call $std/array/assertSorted - local.get $1 + local.get $0 i32.const 7552 call $std/array/assertSorted - local.get $0 + local.get $4 i32.const 7584 call $std/array/assertSorted - local.get $0 + local.get $4 i32.const 7616 call $std/array/assertSorted - local.get $1 - call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - call $std/array/createReverseOrderedNestedArray + local.get $4 + call $~lib/rt/pure/__release + i32.const 0 + local.set $57 + call $~lib/rt/tlsf/maybeInitialize + i32.const 16 + i32.const 22 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + call $~lib/rt/tlsf/maybeInitialize + i32.const 8 + i32.const 0 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $4 + i32.const 0 + i32.const 8 + call $~lib/memory/memory.fill + local.get $4 + local.set $3 + local.get $4 + local.get $0 + i32.load + local.tee $56 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + local.set $3 + local.get $56 + call $~lib/rt/pure/__release + end + local.get $0 + local.get $3 + i32.store + local.get $0 + local.get $4 + i32.store offset=4 + local.get $0 + i32.const 8 + i32.store offset=8 + local.get $0 + i32.const 2 + i32.store offset=12 + loop $for-loop|060 + local.get $57 + i32.const 2 + i32.lt_s + if + i32.const 1 + call $~lib/array/Array#constructor + local.tee $4 + i32.const 0 + i32.const 1 + local.get $57 + i32.sub + call $~lib/array/Array#__set + local.get $0 + local.get $57 + local.get $4 + call $~lib/array/Array<~lib/array/Array>#__set + local.get $4 + call $~lib/rt/pure/__release + local.get $57 + i32.const 1 + i32.add + local.set $57 + br $for-loop|060 + end + end + local.get $0 i32.const 7648 call $std/array/assertSorted<~lib/array/Array> local.get $0 @@ -16189,85 +16479,85 @@ i32.const 7856 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $10 + local.set $57 i32.const 7 i32.const 2 i32.const 27 i32.const 7904 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $9 + local.set $53 i32.const 1 global.set $~argumentsLength block $__inlined_func$std/array/isSorted<~lib/string/String|null> (result i32) - local.get $10 + local.get $57 call $~lib/rt/pure/__retain - local.tee $3 + local.tee $52 i32.const 7952 call $~lib/rt/pure/__retain - local.tee $4 + local.tee $51 call $~lib/array/Array<~lib/array/Array>#sort - local.tee $1 + local.tee $50 call $~lib/rt/pure/__retain - local.set $8 - local.get $4 + local.set $4 + local.get $51 call $~lib/rt/pure/__retain - local.set $7 + local.set $56 i32.const 1 - local.set $2 - local.get $8 + local.set $3 + local.get $4 i32.load offset=12 - local.set $0 + local.set $49 loop $for-loop|00 - local.get $2 - local.get $0 + local.get $3 + local.get $49 i32.lt_s if - local.get $8 - local.get $2 + local.get $4 + local.get $3 i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $5 - local.get $8 - local.get $2 + local.set $55 + local.get $4 + local.get $3 call $~lib/array/Array#__get - local.set $6 + local.set $54 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $6 - local.get $7 + local.get $55 + local.get $54 + local.get $56 i32.load call_indirect (type $i32_i32_=>_i32) i32.const 0 i32.gt_s if - local.get $8 + local.get $4 call $~lib/rt/pure/__release - local.get $7 + local.get $56 call $~lib/rt/pure/__release - local.get $5 + local.get $55 call $~lib/rt/pure/__release - local.get $6 + local.get $54 call $~lib/rt/pure/__release i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String|null> end - local.get $5 + local.get $55 call $~lib/rt/pure/__release - local.get $6 + local.get $54 call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|00 end end - local.get $8 + local.get $4 call $~lib/rt/pure/__release - local.get $7 + local.get $56 call $~lib/rt/pure/__release i32.const 1 end @@ -16280,16 +16570,16 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $50 call $~lib/rt/pure/__release - local.get $3 + local.get $52 call $~lib/rt/pure/__release - local.get $4 + local.get $51 call $~lib/rt/pure/__release i32.const 7952 call $~lib/rt/pure/__release - local.get $10 - local.get $9 + local.get $57 + local.get $53 call $std/array/isArraysEqual<~lib/string/String|null> i32.eqz if @@ -16301,111 +16591,46 @@ unreachable end i32.const 0 - local.set $2 + local.set $0 i32.const 0 i32.const 400 call $~lib/array/Array<~lib/string/String>#constructor - local.set $8 + local.set $4 loop $for-loop|06 - local.get $2 + local.get $0 i32.const 400 i32.lt_s if + local.get $4 + local.get $0 call $~lib/math/NativeMath.random f64.const 32 f64.mul i32.trunc_f64_s - local.set $5 - i32.const 0 - local.set $7 - i32.const 7840 - local.set $3 - loop $for-loop|049 - local.get $7 - local.get $5 - i32.lt_s - if - local.get $3 - local.tee $1 - local.tee $0 - block $__inlined_func$~lib/string/String#charAt (result i32) - i32.const 7840 - call $~lib/math/NativeMath.random - i32.const 6512 - call $~lib/string/String#get:length - f64.convert_i32_s - f64.mul - f64.floor - i32.trunc_f64_s - local.tee $6 - i32.const 6512 - call $~lib/string/String#get:length - i32.ge_u - br_if $__inlined_func$~lib/string/String#charAt - drop - i32.const 2 - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $4 - local.get $6 - i32.const 1 - i32.shl - i32.const 6512 - i32.add - i32.load16_u - i32.store16 - local.get $4 - call $~lib/rt/pure/__retain - end - local.tee $4 - call $~lib/string/String.__concat - local.tee $6 - local.tee $3 - local.get $0 - i32.ne - if - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - end - local.get $4 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|049 - end - end - local.get $8 - local.get $2 - local.get $3 + call $std/array/createRandomString + local.tee $3 call $~lib/array/Array<~lib/array/Array>#__set local.get $3 call $~lib/rt/pure/__release - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|06 end end i32.const 1 global.set $~argumentsLength - local.get $8 + local.get $4 i32.const 8016 call $std/array/assertSorted<~lib/array/Array> i32.const 8016 call $~lib/rt/pure/__release - local.get $10 + local.get $57 call $~lib/rt/pure/__release - local.get $9 + local.get $53 call $~lib/rt/pure/__release - local.get $8 + local.get $4 call $~lib/rt/pure/__release i32.const 2 i32.const 0 @@ -16413,15 +16638,15 @@ i32.const 8048 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $12 + local.tee $0 i32.load offset=4 - local.get $12 + local.get $0 i32.load offset=12 call $~lib/util/string/joinBooleanArray - local.set $13 + local.set $3 i32.const 8144 call $~lib/rt/pure/__release - local.get $13 + local.get $3 i32.const 8176 call $~lib/string/String.__eq i32.eqz @@ -16439,10 +16664,10 @@ i32.const 8224 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $10 + local.tee $54 i32.const 7840 call $~lib/array/Array#join - local.tee $8 + local.tee $53 i32.const 8576 call $~lib/string/String.__eq i32.eqz @@ -16460,10 +16685,10 @@ i32.const 8608 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $7 + local.tee $51 i32.const 8640 call $~lib/array/Array#join - local.tee $9 + local.tee $52 i32.const 8576 call $~lib/string/String.__eq i32.eqz @@ -16481,10 +16706,10 @@ i32.const 8672 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $50 i32.const 8704 call $~lib/array/Array#join - local.tee $6 + local.tee $49 i32.const 8736 call $~lib/string/String.__eq i32.eqz @@ -16502,15 +16727,15 @@ i32.const 8800 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $14 + local.tee $4 i32.load offset=4 - local.get $14 + local.get $4 i32.load offset=12 call $~lib/util/string/joinFloatArray - local.set $15 + local.set $56 i32.const 8864 call $~lib/rt/pure/__release - local.get $15 + local.get $56 i32.const 9952 call $~lib/string/String.__eq i32.eqz @@ -16528,10 +16753,10 @@ i32.const 10080 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $47 i32.const 7840 call $~lib/array/Array<~lib/string/String|null>#join - local.tee $3 + local.tee $46 i32.const 10048 call $~lib/string/String.__eq i32.eqz @@ -16549,22 +16774,22 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $16 + local.tee $57 i32.load offset=4 - local.tee $0 + local.tee $55 i32.const 0 call $std/array/Ref#constructor i32.store - local.get $0 + local.get $55 i32.const 0 i32.store offset=4 - local.get $0 + local.get $55 i32.const 0 call $std/array/Ref#constructor i32.store offset=8 - local.get $16 + local.get $57 call $~lib/array/Array#join - local.tee $1 + local.tee $45 i32.const 10160 call $~lib/string/String.__eq i32.eqz @@ -16582,19 +16807,19 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $2 + local.tee $55 i32.load offset=4 - local.tee $0 + local.tee $48 i32.const 0 call $std/array/Ref#constructor i32.store - local.get $0 + local.get $48 i32.const 0 call $std/array/Ref#constructor i32.store offset=4 - local.get $2 + local.get $55 call $~lib/array/Array#join - local.tee $0 + local.tee $48 i32.const 10240 call $~lib/string/String.__eq i32.eqz @@ -16606,37 +16831,37 @@ call $~lib/builtins/abort unreachable end - local.get $12 - call $~lib/rt/pure/__release - local.get $13 - call $~lib/rt/pure/__release - local.get $10 + local.get $0 call $~lib/rt/pure/__release - local.get $8 + local.get $3 call $~lib/rt/pure/__release - local.get $7 + local.get $54 call $~lib/rt/pure/__release - local.get $9 + local.get $53 call $~lib/rt/pure/__release - local.get $5 + local.get $51 call $~lib/rt/pure/__release - local.get $6 + local.get $52 call $~lib/rt/pure/__release - local.get $14 + local.get $50 call $~lib/rt/pure/__release - local.get $15 + local.get $49 call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $3 + local.get $56 call $~lib/rt/pure/__release - local.get $16 + local.get $47 call $~lib/rt/pure/__release - local.get $1 + local.get $46 call $~lib/rt/pure/__release - local.get $2 + local.get $57 call $~lib/rt/pure/__release - local.get $0 + local.get $45 + call $~lib/rt/pure/__release + local.get $55 + call $~lib/rt/pure/__release + local.get $48 call $~lib/rt/pure/__release i32.const 0 i32.const 2 @@ -16644,29 +16869,29 @@ i32.const 10320 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $21 + local.set $53 i32.const 1 i32.const 2 i32.const 3 i32.const 10336 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $22 + local.set $51 i32.const 2 i32.const 2 i32.const 3 i32.const 10368 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $23 + local.set $52 i32.const 4 i32.const 2 i32.const 3 i32.const 10400 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $24 - local.get $21 + local.set $50 + local.get $53 i32.const 8144 call $~lib/array/Array#join local.tee $0 @@ -16682,11 +16907,11 @@ call $~lib/builtins/abort unreachable end - local.get $22 + local.get $51 i32.const 8144 call $~lib/array/Array#join local.tee $0 - local.set $8 + local.set $39 local.get $0 i32.const 10048 call $~lib/string/String.__eq @@ -16699,11 +16924,11 @@ call $~lib/builtins/abort unreachable end - local.get $23 + local.get $52 i32.const 8144 call $~lib/array/Array#join local.tee $0 - local.set $7 + local.set $37 local.get $0 i32.const 10432 call $~lib/string/String.__eq @@ -16716,11 +16941,11 @@ call $~lib/builtins/abort unreachable end - local.get $24 + local.get $50 i32.const 8144 call $~lib/array/Array#join local.tee $0 - local.set $9 + local.set $36 local.get $0 i32.const 10464 call $~lib/string/String.__eq @@ -16739,15 +16964,15 @@ i32.const 10496 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $11 + local.tee $0 i32.load offset=4 - local.get $11 + local.get $0 i32.load offset=12 call $~lib/util/string/joinIntegerArray - local.set $17 + local.set $49 i32.const 8144 call $~lib/rt/pure/__release - local.get $17 + local.get $49 i32.const 10528 call $~lib/string/String.__eq i32.eqz @@ -16765,15 +16990,15 @@ i32.const 10560 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $18 + local.tee $4 i32.load offset=4 - local.get $18 + local.get $4 i32.load offset=12 call $~lib/util/string/joinIntegerArray - local.set $19 + local.set $47 i32.const 8144 call $~lib/rt/pure/__release - local.get $19 + local.get $47 i32.const 10592 call $~lib/string/String.__eq i32.eqz @@ -16791,15 +17016,15 @@ i32.const 10640 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $12 + local.tee $3 i32.load offset=4 - local.get $12 + local.get $3 i32.load offset=12 call $~lib/util/string/joinIntegerArray - local.set $13 + local.set $46 i32.const 8144 call $~lib/rt/pure/__release - local.get $13 + local.get $46 i32.const 10688 call $~lib/string/String.__eq i32.eqz @@ -16817,15 +17042,15 @@ i32.const 10752 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $14 + local.tee $57 i32.load offset=4 - local.get $14 + local.get $57 i32.load offset=12 call $~lib/util/string/joinIntegerArray - local.set $15 + local.set $45 i32.const 8144 call $~lib/rt/pure/__release - local.get $15 + local.get $45 i32.const 10800 call $~lib/string/String.__eq i32.eqz @@ -16843,12 +17068,12 @@ i32.const 10912 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $35 i32.const 8144 call $~lib/array/Array<~lib/string/String|null>#join - local.tee $0 - local.set $6 - local.get $0 + local.tee $56 + local.set $34 + local.get $56 i32.const 10960 call $~lib/string/String.__eq i32.eqz @@ -16866,12 +17091,12 @@ i32.const 11072 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $33 i32.const 8144 call $~lib/array/Array<~lib/string/String|null>#join - local.tee $0 - local.set $3 - local.get $0 + local.tee $56 + local.set $32 + local.get $56 i32.const 11104 call $~lib/string/String.__eq i32.eqz @@ -16889,9 +17114,9 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $26 + local.tee $56 i32.load offset=4 - local.tee $0 + local.tee $55 i32.const 2 i32.const 2 i32.const 3 @@ -16899,7 +17124,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $0 + local.get $55 i32.const 2 i32.const 2 i32.const 3 @@ -16907,15 +17132,15 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 - local.get $26 + local.get $56 i32.load offset=4 - local.get $26 + local.get $56 i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array> - local.set $16 + local.set $48 i32.const 8144 call $~lib/rt/pure/__release - local.get $16 + local.get $48 i32.const 11200 call $~lib/string/String.__eq i32.eqz @@ -16933,9 +17158,9 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $27 + local.tee $55 i32.load offset=4 - local.tee $0 + local.tee $54 i32.const 2 i32.const 0 i32.const 6 @@ -16943,7 +17168,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $0 + local.get $54 i32.const 2 i32.const 0 i32.const 6 @@ -16951,15 +17176,15 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 - local.get $27 + local.get $55 i32.load offset=4 - local.get $27 + local.get $55 i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array> - local.set $2 + local.set $42 i32.const 8144 call $~lib/rt/pure/__release - local.get $2 + local.get $42 i32.const 11200 call $~lib/string/String.__eq i32.eqz @@ -16977,7 +17202,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $20 + local.tee $54 i32.load offset=4 i32.const 1 i32.const 2 @@ -16985,7 +17210,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $43 i32.load offset=4 i32.const 1 i32.const 2 @@ -16994,17 +17219,17 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $0 + local.get $43 i32.store - local.get $20 + local.get $54 i32.load offset=4 - local.get $20 + local.get $54 i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> - local.set $0 + local.set $43 i32.const 8144 call $~lib/rt/pure/__release - local.get $0 + local.get $43 i32.const 10048 call $~lib/string/String.__eq i32.eqz @@ -17016,50 +17241,50 @@ call $~lib/builtins/abort unreachable end - local.get $21 + local.get $53 call $~lib/rt/pure/__release - local.get $22 + local.get $51 call $~lib/rt/pure/__release - local.get $23 + local.get $52 call $~lib/rt/pure/__release - local.get $24 + local.get $50 call $~lib/rt/pure/__release call $~lib/rt/pure/__release - local.get $8 + local.get $39 call $~lib/rt/pure/__release - local.get $7 + local.get $37 call $~lib/rt/pure/__release - local.get $9 + local.get $36 call $~lib/rt/pure/__release - local.get $11 + local.get $0 call $~lib/rt/pure/__release - local.get $17 + local.get $49 call $~lib/rt/pure/__release - local.get $18 + local.get $4 call $~lib/rt/pure/__release - local.get $19 + local.get $47 call $~lib/rt/pure/__release - local.get $12 + local.get $3 call $~lib/rt/pure/__release - local.get $13 + local.get $46 call $~lib/rt/pure/__release - local.get $14 + local.get $57 call $~lib/rt/pure/__release - local.get $15 + local.get $45 call $~lib/rt/pure/__release - local.get $5 + local.get $35 call $~lib/rt/pure/__release - local.get $6 + local.get $34 call $~lib/rt/pure/__release - local.get $4 + local.get $33 call $~lib/rt/pure/__release - local.get $3 + local.get $32 call $~lib/rt/pure/__release - local.get $16 + local.get $48 call $~lib/rt/pure/__release - local.get $2 + local.get $42 call $~lib/rt/pure/__release - local.get $0 + local.get $43 call $~lib/rt/pure/__release global.get $std/array/arr call $~lib/rt/pure/__release @@ -17069,7 +17294,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $5 + local.tee $57 i32.load offset=4 local.tee $0 i32.const 1 @@ -17103,9 +17328,9 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=12 - local.get $5 + local.get $57 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $6 + local.tee $53 i32.load offset=12 i32.const 10 i32.ne @@ -17118,16 +17343,16 @@ unreachable end i32.const 0 - local.set $3 + local.set $0 loop $for-loop|1 - local.get $3 + local.get $0 i32.const 10 i32.lt_s if - local.get $6 - local.get $3 + local.get $53 + local.get $0 call $~lib/array/Array#__get - local.get $3 + local.get $0 i32.ne if i32.const 0 @@ -17137,10 +17362,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|1 end end @@ -17150,7 +17375,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $4 + local.tee $51 i32.load offset=4 local.tee $0 i32.const 1 @@ -17184,17 +17409,17 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=12 - local.get $4 + local.get $51 call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#flat - local.set $7 + local.set $4 i32.const 8 i32.const 2 i32.const 27 i32.const 11808 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $9 - local.get $7 + local.set $3 + local.get $4 i32.load offset=12 i32.const 8 i32.ne @@ -17207,21 +17432,21 @@ unreachable end i32.const 0 - local.set $3 + local.set $0 loop $for-loop|2 + local.get $0 local.get $3 - local.get $9 i32.load offset=12 i32.lt_s if - local.get $7 - local.get $3 + local.get $4 + local.get $0 call $~lib/array/Array#__get - local.tee $1 - local.get $9 + local.tee $52 local.get $3 + local.get $0 call $~lib/array/Array#__get - local.tee $0 + local.tee $50 call $~lib/string/String.__eq i32.eqz if @@ -17232,14 +17457,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $52 call $~lib/rt/pure/__release - local.get $0 + local.get $50 call $~lib/rt/pure/__release - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|2 end end @@ -17249,9 +17474,9 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $1 - i32.load offset=4 local.tee $0 + i32.load offset=4 + local.tee $52 i32.const 0 i32.const 2 i32.const 3 @@ -17259,7 +17484,7 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $0 + local.get $52 i32.const 0 i32.const 2 i32.const 3 @@ -17267,9 +17492,9 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $0 + local.tee $52 i32.load offset=12 if i32.const 0 @@ -17279,33 +17504,33 @@ call $~lib/builtins/abort unreachable end - local.get $1 - call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $25 + local.get $52 call $~lib/rt/pure/__release - local.get $29 + local.get $1 call $~lib/rt/pure/__release - local.get $28 + local.get $2 call $~lib/rt/pure/__release - local.get $32 + local.get $41 call $~lib/rt/pure/__release - local.get $26 + local.get $38 call $~lib/rt/pure/__release - local.get $27 + local.get $56 call $~lib/rt/pure/__release - local.get $20 + local.get $55 call $~lib/rt/pure/__release - local.get $5 + local.get $54 call $~lib/rt/pure/__release - local.get $6 + local.get $57 call $~lib/rt/pure/__release - local.get $4 + local.get $53 call $~lib/rt/pure/__release - local.get $7 + local.get $51 call $~lib/rt/pure/__release - local.get $9 + local.get $4 + call $~lib/rt/pure/__release + local.get $3 call $~lib/rt/pure/__release ) (func $~lib/array/Array#constructor (param $0 i32) (param $1 i32) (result i32) @@ -17316,9 +17541,12 @@ local.get $0 i32.eqz if + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 7 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $0 end @@ -17345,12 +17573,15 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize local.get $1 i32.const 2 i32.shl local.tee $4 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 i32.const 0 local.get $4 @@ -17697,9 +17928,12 @@ local.get $0 i32.eqz if + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 6 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $0 end @@ -17726,9 +17960,12 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize local.get $1 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 i32.const 0 local.get $1 @@ -18649,6 +18886,7 @@ local.get $2 call $~lib/rt/pure/__retain local.set $6 + call $~lib/rt/tlsf/maybeInitialize local.get $1 i32.const 31 i32.add @@ -18658,7 +18896,9 @@ i32.shl local.tee $2 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $4 i32.const 0 local.get $2 @@ -20110,7 +20350,9 @@ local.get $0 local.get $1 local.get $2 - call $~lib/array/Array#includes + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s ) (func $~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $1of1 diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index 74e1c922e2..2c692e8524 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -2,8 +2,8 @@ (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) @@ -1042,14 +1042,6 @@ call $~lib/rt/rtrace/onalloc local.get $3 ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (local $2 i32) block $~lib/util/memory/memset|inlined.0 @@ -1461,6 +1453,7 @@ select end local.set $1 + call $~lib/rt/tlsf/maybeInitialize local.get $2 i32.const 0 i32.lt_s @@ -1492,7 +1485,9 @@ select local.tee $2 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $3 local.get $0 local.get $1 @@ -1509,9 +1504,12 @@ local.get $0 i32.eqz if + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 2 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $0 end @@ -1537,12 +1535,15 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize i32.const 1 local.get $1 i32.shl local.tee $3 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $3 call $~lib/memory/memory.fill @@ -1581,9 +1582,12 @@ (local $7 i32) (local $8 i32) (local $9 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 8 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $0 i32.const 8 call $~lib/memory/memory.fill @@ -1816,20 +1820,29 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 5 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain i32.const 0 call $~lib/arraybuffer/ArrayBufferView#constructor local.set $5 + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 3 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 8 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 i32.const 1376 i32.const 8 @@ -1849,9 +1862,12 @@ i32.store offset=12 local.get $0 call $~lib/rt/pure/__retain + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 9 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain i32.const 2 call $~lib/arraybuffer/ArrayBufferView#constructor @@ -1864,9 +1880,12 @@ i32.load offset=12 local.tee $0 local.set $8 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 15 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $3 i32.const 0 diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index f710a3aca4..547c3cbb0d 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -1,8 +1,8 @@ (module (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_=>_none (func (param i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_none (func)) (type $i32_i32_=>_none (func (param i32 i32))) @@ -1050,14 +1050,6 @@ call $~lib/rt/rtrace/onalloc local.get $3 ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) (func $~lib/rt/pure/__retain (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -1116,9 +1108,12 @@ local.get $0 i32.eqz if + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 2 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $0 end @@ -1131,9 +1126,12 @@ local.get $0 i32.const 0 i32.store offset=8 + call $~lib/rt/tlsf/maybeInitialize i32.const 8 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 i32.const 0 i32.store8 @@ -1208,9 +1206,12 @@ (local $3 i32) (local $4 i32) (local $5 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 4 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $4 i32.const 0 @@ -1272,13 +1273,6 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub - ) (func $~lib/polyfills/bswap (param $0 i32) (result i32) local.get $0 i32.const -16711936 @@ -1831,9 +1825,12 @@ (local $1 i32) (local $2 i32) (local $3 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 3 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain call $~lib/arraybuffer/ArrayBufferView#constructor local.tee $1 @@ -1871,7 +1868,10 @@ local.get $1 i32.load local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub local.get $1 i32.load offset=8 call $~lib/dataview/DataView#constructor @@ -3392,7 +3392,10 @@ local.get $0 call $~lib/rt/pure/__release local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $2 + i32.load + i32.sub if i32.const 0 i32.const 1488 diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index 117298a2c0..3b1149fca9 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -1053,14 +1053,6 @@ call $~lib/rt/rtrace/onalloc local.get $3 ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) (func $~lib/rt/pure/__retain (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -1294,22 +1286,18 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 local.get $0 call $~lib/memory/memory.fill local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/util/hash/hash8 (param $0 i32) (result i32) - local.get $0 - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - ) (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.load @@ -1361,7 +1349,10 @@ i32.shl i32.const 24 i32.shr_s - call $~lib/util/hash/hash8 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul call $~lib/map/Map#find i32.const 0 i32.ne @@ -1387,49 +1378,50 @@ i32.shl i32.const 3 i32.div_s - local.tee $8 + local.tee $7 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $3 local.get $0 i32.load offset=8 - local.tee $6 + local.tee $8 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $7 + local.set $6 local.get $3 local.set $2 loop $while-continue|0 local.get $6 - local.get $7 + local.get $8 i32.ne if - local.get $6 - local.set $5 - local.get $6 + local.get $8 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $8 i32.load8_s i32.store8 local.get $2 - local.get $5 + local.get $8 i32.load offset=4 i32.store offset=4 local.get $2 local.get $4 - local.get $5 - i32.load8_s - call $~lib/util/hash/hash8 local.get $1 + local.get $8 + i32.load8_s + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul i32.and i32.const 2 i32.shl @@ -1445,10 +1437,10 @@ i32.add local.set $2 end - local.get $6 + local.get $8 i32.const 12 i32.add - local.set $6 + local.set $8 br $while-continue|0 end end @@ -1456,13 +1448,13 @@ local.tee $2 local.get $0 i32.load - local.tee $6 + local.tee $8 i32.ne if local.get $2 call $~lib/rt/pure/__retain local.set $2 - local.get $6 + local.get $8 call $~lib/rt/pure/__release end local.get $0 @@ -1488,7 +1480,7 @@ local.get $1 i32.store offset=8 local.get $0 - local.get $8 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -1503,15 +1495,20 @@ (local $3 i32) (local $4 i32) (local $5 i32) - local.get $0 - local.get $1 local.get $1 i32.const 24 i32.shl i32.const 24 i32.shr_s - call $~lib/util/hash/hash8 - local.tee $5 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + local.tee $3 + local.set $5 + local.get $0 + local.get $1 + local.get $3 call $~lib/map/Map#find local.tee $3 if @@ -1606,7 +1603,10 @@ i32.shl i32.const 24 i32.shr_s - call $~lib/util/hash/hash8 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul call $~lib/map/Map#find local.tee $0 i32.eqz @@ -1621,6 +1621,78 @@ local.get $0 i32.load offset=4 ) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + call $~lib/rt/tlsf/maybeInitialize + i32.const 16 + i32.const 4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain + local.tee $4 + i32.const 0 + i32.store + local.get $4 + i32.const 0 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=8 + local.get $4 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 1073741808 + i32.gt_u + if + i32.const 1200 + i32.const 1472 + i32.const 57 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + call $~lib/rt/tlsf/maybeInitialize + local.get $0 + i32.const 0 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $0 + call $~lib/memory/memory.fill + local.get $2 + local.set $1 + local.get $2 + local.get $4 + i32.load + local.tee $3 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $3 + call $~lib/rt/pure/__release + end + local.get $4 + local.get $1 + i32.store + local.get $4 + local.get $2 + i32.store offset=4 + local.get $4 + local.get $0 + i32.store offset=8 + local.get $4 + local.get $0 + i32.store offset=12 + local.get $4 + ) (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) @@ -2057,128 +2129,18 @@ local.get $1 i32.store offset=12 ) - (func $~lib/map/Map#keys (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - i32.load offset=8 - local.set $6 - local.get $0 - i32.load offset=16 - local.tee $7 - local.set $4 - i32.const 16 - i32.const 4 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 1073741808 - i32.gt_u - if - i32.const 1200 - i32.const 1472 - i32.const 57 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $4 - call $~lib/memory/memory.fill - local.get $2 - local.set $3 - local.get $2 - local.get $0 - i32.load - local.tee $8 - i32.ne - if - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $8 - call $~lib/rt/pure/__release - end - local.get $0 - local.get $3 - i32.store - local.get $0 - local.get $2 - i32.store offset=4 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - i32.store offset=12 - loop $for-loop|0 - local.get $5 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.tee $2 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - local.get $1 - local.get $2 - i32.load8_s - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - call $~lib/array/Array#set:length - local.get $0 - ) (func $~lib/array/Array#constructor (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 5 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $5 i32.const 0 @@ -2203,12 +2165,15 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 2 i32.shl local.tee $4 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $4 call $~lib/memory/memory.fill @@ -2344,11 +2309,14 @@ ) (func $~lib/map/Map#constructor (result i32) (local $0 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 7 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.tee $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain + local.tee $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store @@ -2412,49 +2380,50 @@ i32.shl i32.const 3 i32.div_s - local.tee $8 + local.tee $7 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.set $3 local.get $0 i32.load offset=8 - local.tee $6 + local.tee $8 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $7 + local.set $6 local.get $3 local.set $2 loop $while-continue|0 local.get $6 - local.get $7 + local.get $8 i32.ne if - local.get $6 - local.set $5 - local.get $6 + local.get $8 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $8 i32.load8_s i32.store8 local.get $2 - local.get $5 + local.get $8 i32.load8_s offset=1 i32.store8 offset=1 local.get $2 local.get $4 - local.get $5 - i32.load8_s - call $~lib/util/hash/hash8 local.get $1 + local.get $8 + i32.load8_s + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul i32.and i32.const 2 i32.shl @@ -2470,10 +2439,10 @@ i32.add local.set $2 end - local.get $6 + local.get $8 i32.const 8 i32.add - local.set $6 + local.set $8 br $while-continue|0 end end @@ -2481,13 +2450,13 @@ local.tee $2 local.get $0 i32.load - local.tee $6 + local.tee $8 i32.ne if local.get $2 call $~lib/rt/pure/__retain local.set $2 - local.get $6 + local.get $8 call $~lib/rt/pure/__release end local.get $0 @@ -2513,7 +2482,7 @@ local.get $1 i32.store offset=8 local.get $0 - local.get $8 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -2528,17 +2497,19 @@ (local $3 i32) (local $4 i32) (local $5 i32) + local.get $0 + i32.load local.get $1 local.tee $3 i32.const 24 i32.shl i32.const 24 i32.shr_s - call $~lib/util/hash/hash8 - local.set $4 - local.get $0 - i32.load - local.get $4 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + local.tee $5 local.get $0 i32.load offset=4 i32.and @@ -2615,7 +2586,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/pure/__retain - local.set $5 + local.set $4 local.get $0 local.get $0 i32.load offset=16 @@ -2623,7 +2594,7 @@ i32.const 1 i32.add i32.store offset=16 - local.get $5 + local.get $4 local.get $1 i32.const 3 i32.shl @@ -2643,7 +2614,7 @@ local.get $1 local.get $0 i32.load - local.get $4 + local.get $5 local.get $0 i32.load offset=4 i32.and @@ -2656,7 +2627,7 @@ local.get $2 local.get $1 i32.store - local.get $5 + local.get $4 call $~lib/rt/pure/__release end local.get $0 @@ -2971,7 +2942,10 @@ i32.shl i32.const 24 i32.shr_s - call $~lib/util/hash/hash8 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul call $~lib/map/Map#find local.tee $1 i32.eqz @@ -3067,32 +3041,35 @@ (local $5 i32) (local $6 i32) (local $7 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 3 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $1 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store - local.get $0 + local.get $1 i32.const 3 i32.store offset=4 - local.get $0 + local.get $1 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store offset=8 - local.get $0 + local.get $1 i32.const 4 i32.store offset=12 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.store offset=20 loop $for-loop|1 - local.get $1 + local.get $2 i32.const 24 i32.shl i32.const 24 @@ -3100,8 +3077,8 @@ i32.const 100 i32.lt_s if - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has if i32.const 0 @@ -3111,9 +3088,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 local.get $1 + local.get $2 + local.get $2 i32.const 24 i32.shl i32.const 24 @@ -3122,8 +3099,8 @@ i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has i32.eqz if @@ -3134,10 +3111,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 24 i32.shl i32.const 24 @@ -3153,14 +3130,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|1 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -3173,9 +3150,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i32.const 24 i32.shl i32.const 24 @@ -3183,8 +3160,8 @@ i32.const 100 i32.lt_s if - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has i32.eqz if @@ -3195,10 +3172,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 24 i32.shl i32.const 24 @@ -3214,9 +3191,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 local.get $1 + local.get $2 + local.get $2 i32.const 24 i32.shl i32.const 24 @@ -3225,8 +3202,8 @@ i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has i32.eqz if @@ -3237,10 +3214,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 24 i32.shl i32.const 24 @@ -3256,14 +3233,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|3 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -3275,46 +3252,90 @@ call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=16 + local.tee $6 + call $~lib/array/Array#constructor + local.set $2 + loop $for-loop|0 + local.get $4 + local.get $6 + i32.lt_s + if + local.get $5 + local.get $4 + i32.const 12 + i32.mul + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $0 + local.get $7 + i32.load8_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 local.get $0 - call $~lib/map/Map#keys - local.set $4 - local.get $0 + call $~lib/array/Array#set:length + local.get $1 call $~lib/map/Map#values local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 6 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $1 + local.tee $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store - local.get $1 + local.get $0 i32.const 3 i32.store offset=4 - local.get $1 + local.get $0 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store offset=8 - local.get $1 + local.get $0 i32.const 4 i32.store offset=12 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.store offset=20 call $~lib/map/Map#constructor - local.set $5 + local.set $4 loop $for-loop|4 + local.get $3 local.get $2 - local.get $4 i32.load offset=12 i32.lt_s if + local.get $3 local.get $2 - local.get $4 i32.load offset=12 i32.ge_u if @@ -3325,18 +3346,18 @@ call $~lib/builtins/abort unreachable end + local.get $3 local.get $2 - local.get $4 i32.load offset=4 i32.add i32.load8_s - local.set $3 + local.set $5 local.get $6 - local.get $2 + local.get $3 call $~lib/array/Array#__get local.set $7 - local.get $0 - local.get $3 + local.get $1 + local.get $5 call $~lib/map/Map#has i32.eqz if @@ -3347,7 +3368,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $7 i32.const 20 i32.sub @@ -3361,27 +3382,27 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.get $3 - local.get $3 + local.get $0 + local.get $5 + local.get $5 call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $5 + local.get $4 local.get $7 i32.const 20 i32.sub - local.tee $3 - local.get $3 + local.tee $5 + local.get $5 call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|4 end end - local.get $1 + local.get $0 i32.load offset=20 i32.const 100 i32.ne @@ -3393,7 +3414,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -3406,9 +3427,9 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|6 - local.get $2 + local.get $3 i32.const 24 i32.shl i32.const 24 @@ -3416,8 +3437,8 @@ i32.const 50 i32.lt_s if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -3428,10 +3449,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#get - local.get $2 + local.get $3 i32.const 24 i32.shl i32.const 24 @@ -3447,11 +3468,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#delete - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -3461,14 +3482,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|6 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -3481,9 +3502,9 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|8 - local.get $2 + local.get $3 i32.const 24 i32.shl i32.const 24 @@ -3491,8 +3512,8 @@ i32.const 50 i32.lt_s if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -3502,10 +3523,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 - local.get $2 - i32.const 24 + local.get $1 + local.get $3 + local.get $3 + i32.const 24 i32.shl i32.const 24 i32.shr_s @@ -3513,8 +3534,8 @@ i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -3525,11 +3546,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#delete - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -3539,14 +3560,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|8 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -3558,9 +3579,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/map/Map#clear - local.get $0 + local.get $1 i32.load offset=20 if i32.const 0 @@ -3570,15 +3591,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release - local.get $1 + local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $4 call $~lib/rt/pure/__release - local.get $0 + local.get $1 call $~lib/rt/pure/__release ) (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) @@ -3587,7 +3608,10 @@ local.get $1 i32.const 255 i32.and - call $~lib/util/hash/hash8 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul call $~lib/map/Map#find i32.const 0 i32.ne @@ -3613,49 +3637,50 @@ i32.shl i32.const 3 i32.div_s - local.tee $8 + local.tee $7 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $3 local.get $0 i32.load offset=8 - local.tee $6 + local.tee $8 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $7 + local.set $6 local.get $3 local.set $2 loop $while-continue|0 local.get $6 - local.get $7 + local.get $8 i32.ne if - local.get $6 - local.set $5 - local.get $6 + local.get $8 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $8 i32.load8_u i32.store8 local.get $2 - local.get $5 + local.get $8 i32.load offset=4 i32.store offset=4 local.get $2 local.get $4 - local.get $5 - i32.load8_u - call $~lib/util/hash/hash8 local.get $1 + local.get $8 + i32.load8_u + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul i32.and i32.const 2 i32.shl @@ -3671,10 +3696,10 @@ i32.add local.set $2 end - local.get $6 + local.get $8 i32.const 12 i32.add - local.set $6 + local.set $8 br $while-continue|0 end end @@ -3682,13 +3707,13 @@ local.tee $2 local.get $0 i32.load - local.tee $6 + local.tee $8 i32.ne if local.get $2 call $~lib/rt/pure/__retain local.set $2 - local.get $6 + local.get $8 call $~lib/rt/pure/__release end local.get $0 @@ -3714,7 +3739,7 @@ local.get $1 i32.store offset=8 local.get $0 - local.get $8 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -3729,13 +3754,18 @@ (local $3 i32) (local $4 i32) (local $5 i32) - local.get $0 - local.get $1 local.get $1 i32.const 255 i32.and - call $~lib/util/hash/hash8 - local.tee $5 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + local.tee $3 + local.set $5 + local.get $0 + local.get $1 + local.get $3 call $~lib/map/Map#find local.tee $3 if @@ -3828,7 +3858,10 @@ local.get $1 i32.const 255 i32.and - call $~lib/util/hash/hash8 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul call $~lib/map/Map#find local.tee $0 i32.eqz @@ -3843,39 +3876,31 @@ local.get $0 i32.load offset=4 ) - (func $~lib/map/Map#keys (param $0 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - i32.load offset=8 - local.set $6 - local.get $0 - i32.load offset=16 - local.tee $7 - local.set $4 + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 9 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $4 i32.const 0 i32.store - local.get $0 + local.get $4 i32.const 0 i32.store offset=4 - local.get $0 + local.get $4 i32.const 0 i32.store offset=8 - local.get $0 + local.get $4 i32.const 0 i32.store offset=12 - local.get $4 + local.get $0 i32.const 1073741808 i32.gt_u if @@ -3886,75 +3911,42 @@ call $~lib/builtins/abort unreachable end - local.get $4 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 - local.get $4 + local.get $0 call $~lib/memory/memory.fill local.get $2 - local.set $3 + local.set $1 local.get $2 - local.get $0 + local.get $4 i32.load - local.tee $8 + local.tee $3 i32.ne if - local.get $3 + local.get $1 call $~lib/rt/pure/__retain - local.set $3 - local.get $8 + local.set $1 + local.get $3 call $~lib/rt/pure/__release end - local.get $0 - local.get $3 + local.get $4 + local.get $1 i32.store - local.get $0 + local.get $4 local.get $2 i32.store offset=4 - local.get $0 local.get $4 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $4 - i32.store offset=12 - loop $for-loop|0 - local.get $5 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.tee $2 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - local.get $1 - local.get $2 - i32.load8_u - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - call $~lib/array/Array#set:length local.get $0 + i32.store offset=12 + local.get $4 ) (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -3977,49 +3969,50 @@ i32.shl i32.const 3 i32.div_s - local.tee $8 + local.tee $7 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.set $3 local.get $0 i32.load offset=8 - local.tee $6 + local.tee $8 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $7 + local.set $6 local.get $3 local.set $2 loop $while-continue|0 local.get $6 - local.get $7 + local.get $8 i32.ne if - local.get $6 - local.set $5 - local.get $6 + local.get $8 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $8 i32.load8_u i32.store8 local.get $2 - local.get $5 + local.get $8 i32.load8_u offset=1 i32.store8 offset=1 local.get $2 local.get $4 - local.get $5 - i32.load8_u - call $~lib/util/hash/hash8 local.get $1 + local.get $8 + i32.load8_u + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul i32.and i32.const 2 i32.shl @@ -4035,10 +4028,10 @@ i32.add local.set $2 end - local.get $6 + local.get $8 i32.const 8 i32.add - local.set $6 + local.set $8 br $while-continue|0 end end @@ -4046,13 +4039,13 @@ local.tee $2 local.get $0 i32.load - local.tee $6 + local.tee $8 i32.ne if local.get $2 call $~lib/rt/pure/__retain local.set $2 - local.get $6 + local.get $8 call $~lib/rt/pure/__release end local.get $0 @@ -4078,7 +4071,7 @@ local.get $1 i32.store offset=8 local.get $0 - local.get $8 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -4093,15 +4086,17 @@ (local $3 i32) (local $4 i32) (local $5 i32) + local.get $0 + i32.load local.get $1 local.tee $3 i32.const 255 i32.and - call $~lib/util/hash/hash8 - local.set $4 - local.get $0 - i32.load - local.get $4 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + local.tee $5 local.get $0 i32.load offset=4 i32.and @@ -4178,7 +4173,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/pure/__retain - local.set $5 + local.set $4 local.get $0 local.get $0 i32.load offset=16 @@ -4186,7 +4181,7 @@ i32.const 1 i32.add i32.store offset=16 - local.get $5 + local.get $4 local.get $1 i32.const 3 i32.shl @@ -4206,7 +4201,7 @@ local.get $1 local.get $0 i32.load - local.get $4 + local.get $5 local.get $0 i32.load offset=4 i32.and @@ -4219,7 +4214,7 @@ local.get $2 local.get $1 i32.store - local.get $5 + local.get $4 call $~lib/rt/pure/__release end local.get $0 @@ -4232,7 +4227,10 @@ local.get $1 i32.const 255 i32.and - call $~lib/util/hash/hash8 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul call $~lib/map/Map#find local.tee $1 i32.eqz @@ -4295,39 +4293,42 @@ (local $5 i32) (local $6 i32) (local $7 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 8 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $1 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store - local.get $0 + local.get $1 i32.const 3 i32.store offset=4 - local.get $0 + local.get $1 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store offset=8 - local.get $0 + local.get $1 i32.const 4 i32.store offset=12 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.store offset=20 loop $for-loop|1 - local.get $1 + local.get $2 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has if i32.const 0 @@ -4337,17 +4338,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 local.get $1 + local.get $2 + local.get $2 i32.const 255 i32.and i32.const 10 i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has i32.eqz if @@ -4358,10 +4359,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 255 i32.and i32.const 10 @@ -4375,14 +4376,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|1 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -4395,16 +4396,16 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has i32.eqz if @@ -4415,10 +4416,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 255 i32.and i32.const 10 @@ -4432,17 +4433,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 local.get $1 + local.get $2 + local.get $2 i32.const 255 i32.and i32.const 20 i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has i32.eqz if @@ -4453,10 +4454,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 255 i32.and i32.const 20 @@ -4470,14 +4471,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|3 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -4489,46 +4490,90 @@ call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=16 + local.tee $6 + call $~lib/array/Array#constructor + local.set $2 + loop $for-loop|0 + local.get $4 + local.get $6 + i32.lt_s + if + local.get $5 + local.get $4 + i32.const 12 + i32.mul + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $0 + local.get $7 + i32.load8_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 local.get $0 - call $~lib/map/Map#keys - local.set $4 - local.get $0 + call $~lib/array/Array#set:length + local.get $1 call $~lib/map/Map#values local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 10 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $1 + local.tee $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store - local.get $1 + local.get $0 i32.const 3 i32.store offset=4 - local.get $1 + local.get $0 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store offset=8 - local.get $1 + local.get $0 i32.const 4 i32.store offset=12 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.store offset=20 call $~lib/map/Map#constructor - local.set $5 + local.set $4 loop $for-loop|4 + local.get $3 local.get $2 - local.get $4 i32.load offset=12 i32.lt_s if + local.get $3 local.get $2 - local.get $4 i32.load offset=12 i32.ge_u if @@ -4539,18 +4584,18 @@ call $~lib/builtins/abort unreachable end + local.get $3 local.get $2 - local.get $4 i32.load offset=4 i32.add i32.load8_u - local.set $3 + local.set $5 local.get $6 - local.get $2 + local.get $3 call $~lib/array/Array#__get local.set $7 - local.get $0 - local.get $3 + local.get $1 + local.get $5 call $~lib/map/Map#has i32.eqz if @@ -4561,7 +4606,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $7 i32.const 20 i32.sub @@ -4575,27 +4620,27 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.get $3 - local.get $3 + local.get $0 + local.get $5 + local.get $5 call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $5 + local.get $4 local.get $7 i32.const 20 i32.sub - local.tee $3 - local.get $3 + local.tee $5 + local.get $5 call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|4 end end - local.get $1 + local.get $0 i32.load offset=20 i32.const 100 i32.ne @@ -4607,7 +4652,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -4620,16 +4665,16 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|6 - local.get $2 + local.get $3 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -4640,10 +4685,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#get - local.get $2 + local.get $3 i32.const 255 i32.and i32.const 20 @@ -4657,11 +4702,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#delete - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -4671,14 +4716,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|6 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -4691,16 +4736,16 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|8 - local.get $2 + local.get $3 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -4710,17 +4755,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 - local.get $2 + local.get $1 + local.get $3 + local.get $3 i32.const 255 i32.and i32.const 10 i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -4731,11 +4776,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#delete - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -4745,14 +4790,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|8 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -4764,9 +4809,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/map/Map#clear - local.get $0 + local.get $1 i32.load offset=20 if i32.const 0 @@ -4776,15 +4821,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release - local.get $1 + local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $4 call $~lib/rt/pure/__release - local.get $0 + local.get $1 call $~lib/rt/pure/__release ) (func $~lib/util/hash/hash16 (param $0 i32) (result i32) @@ -5113,90 +5158,32 @@ local.get $0 i32.load offset=4 ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1520 - i32.const 1472 - i32.const 120 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - call $~lib/array/ensureSize - local.get $0 - local.get $3 - i32.store offset=12 - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.store16 - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=12 - drop - local.get $0 - local.get $1 - i32.const 1 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/map/Map#keys (param $0 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - i32.load offset=8 - local.set $5 - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $7 + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 12 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $5 i32.const 0 i32.store - local.get $0 + local.get $5 i32.const 0 i32.store offset=4 - local.get $0 + local.get $5 i32.const 0 i32.store offset=8 - local.get $0 + local.get $5 i32.const 0 i32.store offset=12 - local.get $8 + local.get $0 i32.const 536870904 i32.gt_u if @@ -5207,78 +5194,95 @@ call $~lib/builtins/abort unreachable end - local.get $7 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 1 i32.shl - local.tee $6 + local.tee $4 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $4 call $~lib/memory/memory.fill - local.get $3 - local.set $2 - local.get $3 - local.get $0 + local.get $2 + local.set $1 + local.get $2 + local.get $5 i32.load - local.tee $4 + local.tee $3 i32.ne if - local.get $2 + local.get $1 call $~lib/rt/pure/__retain - local.set $2 - local.get $4 + local.set $1 + local.get $3 call $~lib/rt/pure/__release end - local.get $0 - local.get $2 + local.get $5 + local.get $1 i32.store - local.get $0 - local.get $3 + local.get $5 + local.get $2 i32.store offset=4 - local.get $0 - local.get $6 + local.get $5 + local.get $4 i32.store offset=8 + local.get $5 local.get $0 - local.get $7 i32.store offset=12 - loop $for-loop|0 - local.get $9 - local.get $8 + local.get $5 + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 i32.lt_s if - local.get $5 - local.get $9 - i32.const 12 - i32.mul - i32.add - local.tee $3 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - local.get $1 - local.get $3 - i32.load16_s - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 + i32.const 1520 + i32.const 1472 + i32.const 120 + i32.const 22 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + call $~lib/array/ensureSize + local.get $0 + local.get $3 + i32.store offset=12 end local.get $0 + i32.load offset=4 local.get $1 - call $~lib/array/Array#set:length + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=12 + drop + local.get $0 + local.get $1 + i32.const 1 + call $~lib/array/ensureSize local.get $0 + local.get $1 + i32.store offset=12 ) (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -5623,32 +5627,35 @@ (local $5 i32) (local $6 i32) (local $7 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 11 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $1 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store - local.get $0 + local.get $1 i32.const 3 i32.store offset=4 - local.get $0 + local.get $1 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store offset=8 - local.get $0 + local.get $1 i32.const 4 i32.store offset=12 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.store offset=20 loop $for-loop|1 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 16 @@ -5656,8 +5663,8 @@ i32.const 100 i32.lt_s if - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has if i32.const 0 @@ -5667,9 +5674,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 local.get $1 + local.get $2 + local.get $2 i32.const 16 i32.shl i32.const 16 @@ -5678,8 +5685,8 @@ i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has i32.eqz if @@ -5690,10 +5697,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 16 @@ -5709,14 +5716,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|1 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -5729,9 +5736,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 16 @@ -5739,8 +5746,8 @@ i32.const 100 i32.lt_s if - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has i32.eqz if @@ -5751,10 +5758,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 16 @@ -5770,9 +5777,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 local.get $1 + local.get $2 + local.get $2 i32.const 16 i32.shl i32.const 16 @@ -5781,8 +5788,8 @@ i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has i32.eqz if @@ -5793,10 +5800,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 16 @@ -5812,14 +5819,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|3 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -5831,46 +5838,90 @@ call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $6 + local.get $1 + i32.load offset=16 + local.tee $7 + call $~lib/array/Array#constructor + local.set $2 + loop $for-loop|0 + local.get $4 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $4 + i32.const 12 + i32.mul + i32.add + local.tee $5 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $0 + local.get $5 + i32.load16_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 local.get $0 - call $~lib/map/Map#keys - local.set $4 - local.get $0 + call $~lib/array/Array#set:length + local.get $1 call $~lib/map/Map#values local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 13 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $3 + local.tee $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store - local.get $3 + local.get $0 i32.const 3 i32.store offset=4 - local.get $3 + local.get $0 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store offset=8 - local.get $3 + local.get $0 i32.const 4 i32.store offset=12 - local.get $3 + local.get $0 i32.const 0 i32.store offset=16 - local.get $3 + local.get $0 i32.const 0 i32.store offset=20 call $~lib/map/Map#constructor - local.set $5 + local.set $4 loop $for-loop|4 + local.get $3 local.get $2 - local.get $4 i32.load offset=12 i32.lt_s if + local.get $3 local.get $2 - local.get $4 i32.load offset=12 i32.ge_u if @@ -5881,20 +5932,20 @@ call $~lib/builtins/abort unreachable end - local.get $4 - i32.load offset=4 local.get $2 + i32.load offset=4 + local.get $3 i32.const 1 i32.shl i32.add i32.load16_s - local.set $1 + local.set $5 local.get $6 - local.get $2 + local.get $3 call $~lib/array/Array#__get local.set $7 - local.get $0 local.get $1 + local.get $5 call $~lib/map/Map#has i32.eqz if @@ -5905,7 +5956,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $7 i32.const 20 i32.sub @@ -5919,27 +5970,27 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $1 - local.get $1 + local.get $0 + local.get $5 + local.get $5 call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $5 + local.get $4 local.get $7 i32.const 20 i32.sub - local.tee $1 - local.get $1 + local.tee $5 + local.get $5 call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|4 end end - local.get $3 + local.get $0 i32.load offset=20 i32.const 100 i32.ne @@ -5951,7 +6002,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -5964,9 +6015,9 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|6 - local.get $2 + local.get $3 i32.const 16 i32.shl i32.const 16 @@ -5974,8 +6025,8 @@ i32.const 50 i32.lt_s if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -5986,10 +6037,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#get - local.get $2 + local.get $3 i32.const 16 i32.shl i32.const 16 @@ -6005,11 +6056,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#delete - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -6019,14 +6070,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|6 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -6039,9 +6090,9 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|8 - local.get $2 + local.get $3 i32.const 16 i32.shl i32.const 16 @@ -6049,8 +6100,8 @@ i32.const 50 i32.lt_s if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -6060,9 +6111,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 - local.get $2 + local.get $1 + local.get $3 + local.get $3 i32.const 16 i32.shl i32.const 16 @@ -6071,8 +6122,8 @@ i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -6083,11 +6134,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#delete - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -6097,14 +6148,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|8 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -6116,9 +6167,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/map/Map#clear - local.get $0 + local.get $1 i32.load offset=20 if i32.const 0 @@ -6128,15 +6179,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $4 call $~lib/rt/pure/__release - local.get $0 + local.get $1 call $~lib/rt/pure/__release ) (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) @@ -6401,40 +6452,32 @@ local.get $0 i32.load offset=4 ) - (func $~lib/map/Map#keys (param $0 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - i32.load offset=8 - local.set $5 - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $7 + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 15 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $5 i32.const 0 i32.store - local.get $0 + local.get $5 i32.const 0 i32.store offset=4 - local.get $0 + local.get $5 i32.const 0 i32.store offset=8 - local.get $0 + local.get $5 i32.const 0 i32.store offset=12 - local.get $8 + local.get $0 i32.const 536870904 i32.gt_u if @@ -6445,78 +6488,45 @@ call $~lib/builtins/abort unreachable end - local.get $7 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 1 i32.shl - local.tee $6 + local.tee $4 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $4 call $~lib/memory/memory.fill - local.get $3 - local.set $2 - local.get $3 - local.get $0 + local.get $2 + local.set $1 + local.get $2 + local.get $5 i32.load - local.tee $4 + local.tee $3 i32.ne if - local.get $2 + local.get $1 call $~lib/rt/pure/__retain - local.set $2 - local.get $4 + local.set $1 + local.get $3 call $~lib/rt/pure/__release end - local.get $0 - local.get $2 + local.get $5 + local.get $1 i32.store - local.get $0 - local.get $3 + local.get $5 + local.get $2 i32.store offset=4 - local.get $0 - local.get $6 + local.get $5 + local.get $4 i32.store offset=8 + local.get $5 local.get $0 - local.get $7 i32.store offset=12 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - if - local.get $5 - local.get $9 - i32.const 12 - i32.mul - i32.add - local.tee $3 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - local.get $1 - local.get $3 - i32.load16_u - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - call $~lib/array/Array#set:length - local.get $0 + local.get $5 ) (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -6857,39 +6867,42 @@ (local $5 i32) (local $6 i32) (local $7 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 14 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $1 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store - local.get $0 + local.get $1 i32.const 3 i32.store offset=4 - local.get $0 + local.get $1 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store offset=8 - local.get $0 + local.get $1 i32.const 4 i32.store offset=12 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.store offset=20 loop $for-loop|1 - local.get $1 + local.get $2 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has if i32.const 0 @@ -6899,17 +6912,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 local.get $1 + local.get $2 + local.get $2 i32.const 65535 i32.and i32.const 10 i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has i32.eqz if @@ -6920,10 +6933,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 65535 i32.and i32.const 10 @@ -6937,14 +6950,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|1 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -6957,16 +6970,16 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has i32.eqz if @@ -6977,10 +6990,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 65535 i32.and i32.const 10 @@ -6994,17 +7007,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 local.get $1 + local.get $2 + local.get $2 i32.const 65535 i32.and i32.const 20 i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has i32.eqz if @@ -7015,10 +7028,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 65535 i32.and i32.const 20 @@ -7032,14 +7045,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|3 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -7051,46 +7064,90 @@ call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $6 + local.get $1 + i32.load offset=16 + local.tee $7 + call $~lib/array/Array#constructor + local.set $2 + loop $for-loop|0 + local.get $4 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $4 + i32.const 12 + i32.mul + i32.add + local.tee $5 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $0 + local.get $5 + i32.load16_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $2 local.get $0 - call $~lib/map/Map#keys - local.set $4 - local.get $0 + call $~lib/array/Array#set:length + local.get $1 call $~lib/map/Map#values local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 16 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $3 + local.tee $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store - local.get $3 + local.get $0 i32.const 3 i32.store offset=4 - local.get $3 + local.get $0 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store offset=8 - local.get $3 + local.get $0 i32.const 4 i32.store offset=12 - local.get $3 + local.get $0 i32.const 0 i32.store offset=16 - local.get $3 + local.get $0 i32.const 0 i32.store offset=20 call $~lib/map/Map#constructor - local.set $5 + local.set $4 loop $for-loop|4 + local.get $3 local.get $2 - local.get $4 i32.load offset=12 i32.lt_s if + local.get $3 local.get $2 - local.get $4 i32.load offset=12 i32.ge_u if @@ -7101,20 +7158,20 @@ call $~lib/builtins/abort unreachable end - local.get $4 - i32.load offset=4 local.get $2 + i32.load offset=4 + local.get $3 i32.const 1 i32.shl i32.add i32.load16_u - local.set $1 + local.set $5 local.get $6 - local.get $2 + local.get $3 call $~lib/array/Array#__get local.set $7 - local.get $0 local.get $1 + local.get $5 call $~lib/map/Map#has i32.eqz if @@ -7125,7 +7182,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $7 i32.const 20 i32.sub @@ -7139,27 +7196,27 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $1 - local.get $1 + local.get $0 + local.get $5 + local.get $5 call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $5 + local.get $4 local.get $7 i32.const 20 i32.sub - local.tee $1 - local.get $1 + local.tee $5 + local.get $5 call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|4 end end - local.get $3 + local.get $0 i32.load offset=20 i32.const 100 i32.ne @@ -7171,7 +7228,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -7184,16 +7241,16 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|6 - local.get $2 + local.get $3 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -7204,10 +7261,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#get - local.get $2 + local.get $3 i32.const 65535 i32.and i32.const 20 @@ -7221,11 +7278,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#delete - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -7235,14 +7292,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|6 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -7255,16 +7312,16 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|8 - local.get $2 + local.get $3 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -7274,17 +7331,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 - local.get $2 + local.get $1 + local.get $3 + local.get $3 i32.const 65535 i32.and i32.const 10 i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -7295,11 +7352,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#delete - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -7309,14 +7366,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|8 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -7328,9 +7385,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/map/Map#clear - local.get $0 + local.get $1 i32.load offset=20 if i32.const 0 @@ -7340,15 +7397,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release - local.get $3 + local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $4 call $~lib/rt/pure/__release - local.get $0 + local.get $1 call $~lib/rt/pure/__release ) (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) @@ -7900,40 +7957,32 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#keys (param $0 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - i32.load offset=8 - local.set $5 - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $7 + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 18 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $5 i32.const 0 i32.store - local.get $0 + local.get $5 i32.const 0 i32.store offset=4 - local.get $0 + local.get $5 i32.const 0 i32.store offset=8 - local.get $0 + local.get $5 i32.const 0 i32.store offset=12 - local.get $8 + local.get $0 i32.const 268435452 i32.gt_u if @@ -7944,78 +7993,45 @@ call $~lib/builtins/abort unreachable end - local.get $7 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 2 i32.shl - local.tee $6 + local.tee $4 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $4 call $~lib/memory/memory.fill - local.get $3 - local.set $2 - local.get $3 - local.get $0 + local.get $2 + local.set $1 + local.get $2 + local.get $5 i32.load - local.tee $4 + local.tee $3 i32.ne if - local.get $2 + local.get $1 call $~lib/rt/pure/__retain - local.set $2 - local.get $4 + local.set $1 + local.get $3 call $~lib/rt/pure/__release end - local.get $0 - local.get $2 + local.get $5 + local.get $1 i32.store - local.get $0 - local.get $3 + local.get $5 + local.get $2 i32.store offset=4 - local.get $0 - local.get $6 + local.get $5 + local.get $4 i32.store offset=8 + local.get $5 local.get $0 - local.get $7 i32.store offset=12 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - if - local.get $5 - local.get $9 - i32.const 12 - i32.mul - i32.add - local.tee $3 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - local.get $1 - local.get $3 - i32.load - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - call $~lib/array/Array#set:length - local.get $0 + local.get $5 ) (func $std/map/testNumeric (local $0 i32) @@ -8026,37 +8042,40 @@ (local $5 i32) (local $6 i32) (local $7 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 17 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $1 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store - local.get $0 + local.get $1 i32.const 3 i32.store offset=4 - local.get $0 + local.get $1 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store offset=8 - local.get $0 + local.get $1 i32.const 4 i32.store offset=12 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.store offset=20 loop $for-loop|0 - local.get $1 + local.get $2 i32.const 100 i32.lt_u if - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has if i32.const 0 @@ -8066,15 +8085,15 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 local.get $1 + local.get $2 + local.get $2 i32.const 10 i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has i32.eqz if @@ -8085,10 +8104,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 10 i32.add i32.ne @@ -8100,14 +8119,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -8120,14 +8139,14 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|1 - local.get $1 + local.get $2 i32.const 100 i32.lt_u if - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has i32.eqz if @@ -8138,10 +8157,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 10 i32.add i32.ne @@ -8153,15 +8172,15 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 local.get $1 + local.get $2 + local.get $2 i32.const 20 i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#has i32.eqz if @@ -8172,10 +8191,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/map/Map#get - local.get $1 + local.get $2 i32.const 20 i32.add i32.ne @@ -8187,14 +8206,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|1 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -8206,54 +8225,98 @@ call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=16 + local.tee $6 + call $~lib/array/Array#constructor + local.set $2 + loop $for-loop|01 + local.get $4 + local.get $6 + i32.lt_s + if + local.get $5 + local.get $4 + i32.const 12 + i32.mul + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $0 + local.get $7 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|01 + end + end + local.get $2 local.get $0 - call $~lib/map/Map#keys - local.set $4 - local.get $0 + call $~lib/array/Array#set:length + local.get $1 call $~lib/map/Map#values local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 19 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $1 + local.tee $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store - local.get $1 + local.get $0 i32.const 3 i32.store offset=4 - local.get $1 + local.get $0 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store offset=8 - local.get $1 + local.get $0 i32.const 4 i32.store offset=12 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.store offset=20 call $~lib/map/Map#constructor - local.set $5 + local.set $4 loop $for-loop|2 + local.get $3 local.get $2 - local.get $4 i32.load offset=12 i32.lt_s if - local.get $4 local.get $2 + local.get $3 call $~lib/array/Array#__get - local.set $3 + local.set $5 local.get $6 - local.get $2 + local.get $3 call $~lib/array/Array#__get local.set $7 - local.get $0 - local.get $3 + local.get $1 + local.get $5 call $~lib/map/Map#has i32.eqz if @@ -8264,7 +8327,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $7 i32.const 20 i32.sub @@ -8278,27 +8341,27 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.get $3 - local.get $3 + local.get $0 + local.get $5 + local.get $5 call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $5 + local.get $4 local.get $7 i32.const 20 i32.sub - local.tee $3 - local.get $3 + local.tee $5 + local.get $5 call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|2 end end - local.get $1 + local.get $0 i32.load offset=20 i32.const 100 i32.ne @@ -8310,7 +8373,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -8323,14 +8386,14 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|3 - local.get $2 + local.get $3 i32.const 50 i32.lt_u if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -8341,10 +8404,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#get - local.get $2 + local.get $3 i32.const 20 i32.add i32.ne @@ -8356,11 +8419,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#delete - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -8370,14 +8433,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|3 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -8390,14 +8453,14 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|4 - local.get $2 + local.get $3 i32.const 50 i32.lt_u if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -8407,15 +8470,15 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 - local.get $2 + local.get $1 + local.get $3 + local.get $3 i32.const 10 i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -8426,11 +8489,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#delete - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -8440,14 +8503,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|4 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -8459,9 +8522,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/map/Map#clear - local.get $0 + local.get $1 i32.load offset=20 if i32.const 0 @@ -8471,15 +8534,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 call $~lib/rt/pure/__release local.get $6 call $~lib/rt/pure/__release - local.get $1 + local.get $0 call $~lib/rt/pure/__release - local.get $5 + local.get $4 call $~lib/rt/pure/__release - local.get $0 + local.get $1 call $~lib/rt/pure/__release ) (func $~lib/util/hash/hash64 (param $0 i64) (result i32) @@ -8845,6 +8908,82 @@ local.get $0 i32.load offset=8 ) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + call $~lib/rt/tlsf/maybeInitialize + i32.const 16 + i32.const 21 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain + local.tee $5 + i32.const 0 + i32.store + local.get $5 + i32.const 0 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 134217726 + i32.gt_u + if + i32.const 1200 + i32.const 1472 + i32.const 57 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + call $~lib/rt/tlsf/maybeInitialize + local.get $0 + i32.const 3 + i32.shl + local.tee $4 + i32.const 0 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $4 + call $~lib/memory/memory.fill + local.get $2 + local.set $1 + local.get $2 + local.get $5 + i32.load + local.tee $3 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $3 + call $~lib/rt/pure/__release + end + local.get $5 + local.get $1 + i32.store + local.get $5 + local.get $2 + i32.store offset=4 + local.get $5 + local.get $4 + i32.store offset=8 + local.get $5 + local.get $0 + i32.store offset=12 + local.get $5 + ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) local.get $1 @@ -8895,123 +9034,6 @@ local.get $1 i32.store offset=12 ) - (func $~lib/map/Map#keys (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - i32.load offset=8 - local.set $5 - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $7 - i32.const 16 - i32.const 21 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $8 - i32.const 134217726 - i32.gt_u - if - i32.const 1200 - i32.const 1472 - i32.const 57 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.const 3 - i32.shl - local.tee $6 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $6 - call $~lib/memory/memory.fill - local.get $3 - local.set $2 - local.get $3 - local.get $0 - i32.load - local.tee $4 - i32.ne - if - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $4 - call $~lib/rt/pure/__release - end - local.get $0 - local.get $2 - i32.store - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $6 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - if - local.get $5 - local.get $9 - i32.const 4 - i32.shl - i32.add - local.tee $3 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - local.get $1 - local.get $3 - i64.load - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - call $~lib/array/Array#set:length - local.get $0 - ) (func $~lib/map/Map#values (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -9443,45 +9465,49 @@ i32.store offset=20 ) (func $std/map/testNumeric - (local $0 i64) - (local $1 i32) + (local $0 i32) + (local $1 i64) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 20 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $1 + local.tee $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store - local.get $1 + local.get $2 i32.const 3 i32.store offset=4 - local.get $1 + local.get $2 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store offset=8 - local.get $1 + local.get $2 i32.const 4 i32.store offset=12 - local.get $1 + local.get $2 i32.const 0 i32.store offset=16 - local.get $1 + local.get $2 i32.const 0 i32.store offset=20 loop $for-loop|0 - local.get $0 + local.get $1 i64.const 100 i64.lt_s if + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has if i32.const 0 @@ -9491,16 +9517,16 @@ call $~lib/builtins/abort unreachable end + local.get $2 + local.get $1 local.get $1 - local.get $0 - local.get $0 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has i32.eqz if @@ -9511,10 +9537,10 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.wrap_i64 i32.const 10 i32.add @@ -9527,14 +9553,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 1 i64.add - local.set $0 + local.set $1 br $for-loop|0 end end - local.get $1 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -9547,14 +9573,14 @@ unreachable end i64.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i64.const 100 i64.lt_s if + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has i32.eqz if @@ -9565,10 +9591,10 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.wrap_i64 i32.const 10 i32.add @@ -9581,16 +9607,16 @@ call $~lib/builtins/abort unreachable end + local.get $2 + local.get $1 local.get $1 - local.get $0 - local.get $0 i32.wrap_i64 i32.const 20 i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has i32.eqz if @@ -9601,10 +9627,10 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.wrap_i64 i32.const 20 i32.add @@ -9617,14 +9643,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 1 i64.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -9636,54 +9662,98 @@ call $~lib/builtins/abort unreachable end - local.get $1 - call $~lib/map/Map#keys - local.set $5 - local.get $1 + local.get $2 + i32.load offset=8 + local.set $6 + local.get $2 + i32.load offset=16 + local.tee $4 + call $~lib/array/Array#constructor + local.set $5 + loop $for-loop|01 + local.get $3 + local.get $4 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $8 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $5 + local.get $0 + local.get $8 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|01 + end + end + local.get $5 + local.get $0 + call $~lib/array/Array#set:length + local.get $2 call $~lib/map/Map#values - local.set $7 + local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 22 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $2 + local.tee $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store - local.get $2 + local.get $0 i32.const 3 i32.store offset=4 - local.get $2 + local.get $0 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store offset=8 - local.get $2 + local.get $0 i32.const 4 i32.store offset=12 - local.get $2 + local.get $0 i32.const 0 i32.store offset=16 - local.get $2 + local.get $0 i32.const 0 i32.store offset=20 call $~lib/map/Map#constructor - local.set $6 + local.set $3 loop $for-loop|2 - local.get $3 + local.get $7 local.get $5 i32.load offset=12 i32.lt_s if local.get $5 - local.get $3 + local.get $7 call $~lib/array/Array#__get - local.set $0 + local.set $1 + local.get $6 local.get $7 - local.get $3 call $~lib/array/Array#__get local.set $4 + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has i32.eqz if @@ -9694,7 +9764,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 local.get $4 i32.const 20 i32.sub @@ -9709,12 +9779,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $0 local.get $0 + local.get $1 + local.get $1 call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $6 + local.get $3 local.get $4 i32.const 20 i32.sub @@ -9722,14 +9792,14 @@ local.get $4 call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|2 end end - local.get $2 + local.get $0 i32.load offset=20 i32.const 100 i32.ne @@ -9741,7 +9811,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -9754,14 +9824,14 @@ unreachable end i64.const 0 - local.set $0 + local.set $1 loop $for-loop|3 - local.get $0 + local.get $1 i64.const 50 i64.lt_s if + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has i32.eqz if @@ -9772,10 +9842,10 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.wrap_i64 i32.const 20 i32.add @@ -9788,11 +9858,11 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#delete + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has if i32.const 0 @@ -9802,14 +9872,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 1 i64.add - local.set $0 + local.set $1 br $for-loop|3 end end - local.get $1 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -9822,14 +9892,14 @@ unreachable end i64.const 0 - local.set $0 + local.set $1 loop $for-loop|4 - local.get $0 + local.get $1 i64.const 50 i64.lt_s if + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has if i32.const 0 @@ -9839,16 +9909,16 @@ call $~lib/builtins/abort unreachable end + local.get $2 + local.get $1 local.get $1 - local.get $0 - local.get $0 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has i32.eqz if @@ -9859,11 +9929,11 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#delete + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has if i32.const 0 @@ -9873,14 +9943,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 1 i64.add - local.set $0 + local.set $1 br $for-loop|4 end end - local.get $1 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -9892,9 +9962,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 call $~lib/map/Map#clear - local.get $1 + local.get $2 i32.load offset=20 if i32.const 0 @@ -9906,49 +9976,41 @@ end local.get $5 call $~lib/rt/pure/__release - local.get $7 + local.get $6 call $~lib/rt/pure/__release - local.get $2 + local.get $0 call $~lib/rt/pure/__release - local.get $6 + local.get $3 call $~lib/rt/pure/__release - local.get $1 + local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/map/Map#keys (param $0 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - i32.load offset=8 - local.set $5 - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $7 + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 24 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $5 i32.const 0 i32.store - local.get $0 + local.get $5 i32.const 0 i32.store offset=4 - local.get $0 + local.get $5 i32.const 0 i32.store offset=8 - local.get $0 + local.get $5 i32.const 0 i32.store offset=12 - local.get $8 + local.get $0 i32.const 134217726 i32.gt_u if @@ -9959,119 +10021,90 @@ call $~lib/builtins/abort unreachable end - local.get $7 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 3 i32.shl - local.tee $6 + local.tee $4 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $4 call $~lib/memory/memory.fill - local.get $3 - local.set $2 - local.get $3 - local.get $0 + local.get $2 + local.set $1 + local.get $2 + local.get $5 i32.load - local.tee $4 + local.tee $3 i32.ne if - local.get $2 + local.get $1 call $~lib/rt/pure/__retain - local.set $2 - local.get $4 + local.set $1 + local.get $3 call $~lib/rt/pure/__release end - local.get $0 - local.get $2 + local.get $5 + local.get $1 i32.store - local.get $0 - local.get $3 + local.get $5 + local.get $2 i32.store offset=4 - local.get $0 - local.get $6 + local.get $5 + local.get $4 i32.store offset=8 + local.get $5 local.get $0 - local.get $7 i32.store offset=12 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - if - local.get $5 - local.get $9 - i32.const 4 - i32.shl - i32.add - local.tee $3 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - local.get $1 - local.get $3 - i64.load - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - call $~lib/array/Array#set:length - local.get $0 + local.get $5 ) (func $std/map/testNumeric - (local $0 i64) - (local $1 i32) + (local $0 i32) + (local $1 i64) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 23 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $1 + local.tee $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store - local.get $1 + local.get $2 i32.const 3 i32.store offset=4 - local.get $1 + local.get $2 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store offset=8 - local.get $1 + local.get $2 i32.const 4 i32.store offset=12 - local.get $1 + local.get $2 i32.const 0 i32.store offset=16 - local.get $1 + local.get $2 i32.const 0 i32.store offset=20 loop $for-loop|0 - local.get $0 + local.get $1 i64.const 100 i64.lt_u if + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has if i32.const 0 @@ -10081,16 +10114,16 @@ call $~lib/builtins/abort unreachable end + local.get $2 + local.get $1 local.get $1 - local.get $0 - local.get $0 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has i32.eqz if @@ -10101,10 +10134,10 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.wrap_i64 i32.const 10 i32.add @@ -10117,14 +10150,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 1 i64.add - local.set $0 + local.set $1 br $for-loop|0 end end - local.get $1 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -10137,14 +10170,14 @@ unreachable end i64.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i64.const 100 i64.lt_u if + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has i32.eqz if @@ -10155,10 +10188,10 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.wrap_i64 i32.const 10 i32.add @@ -10171,16 +10204,16 @@ call $~lib/builtins/abort unreachable end + local.get $2 + local.get $1 local.get $1 - local.get $0 - local.get $0 i32.wrap_i64 i32.const 20 i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has i32.eqz if @@ -10191,10 +10224,10 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.wrap_i64 i32.const 20 i32.add @@ -10207,14 +10240,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 1 i64.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -10226,54 +10259,98 @@ call $~lib/builtins/abort unreachable end - local.get $1 - call $~lib/map/Map#keys + local.get $2 + i32.load offset=8 + local.set $6 + local.get $2 + i32.load offset=16 + local.tee $4 + call $~lib/array/Array#constructor local.set $5 - local.get $1 + loop $for-loop|01 + local.get $3 + local.get $4 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $8 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $5 + local.get $0 + local.get $8 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|01 + end + end + local.get $5 + local.get $0 + call $~lib/array/Array#set:length + local.get $2 call $~lib/map/Map#values - local.set $7 + local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 25 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $2 + local.tee $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store - local.get $2 + local.get $0 i32.const 3 i32.store offset=4 - local.get $2 + local.get $0 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor i32.store offset=8 - local.get $2 + local.get $0 i32.const 4 i32.store offset=12 - local.get $2 + local.get $0 i32.const 0 i32.store offset=16 - local.get $2 + local.get $0 i32.const 0 i32.store offset=20 call $~lib/map/Map#constructor - local.set $6 + local.set $3 loop $for-loop|2 - local.get $3 + local.get $7 local.get $5 i32.load offset=12 i32.lt_s if local.get $5 - local.get $3 + local.get $7 call $~lib/array/Array#__get - local.set $0 + local.set $1 + local.get $6 local.get $7 - local.get $3 call $~lib/array/Array#__get local.set $4 + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has i32.eqz if @@ -10284,7 +10361,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 local.get $4 i32.const 20 i32.sub @@ -10299,12 +10376,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $0 local.get $0 + local.get $1 + local.get $1 call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $6 + local.get $3 local.get $4 i32.const 20 i32.sub @@ -10312,14 +10389,14 @@ local.get $4 call $~lib/map/Map#set call $~lib/rt/pure/__release - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|2 end end - local.get $2 + local.get $0 i32.load offset=20 i32.const 100 i32.ne @@ -10331,7 +10408,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -10344,14 +10421,14 @@ unreachable end i64.const 0 - local.set $0 + local.set $1 loop $for-loop|3 - local.get $0 + local.get $1 i64.const 50 i64.lt_u if + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has i32.eqz if @@ -10362,10 +10439,10 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.wrap_i64 i32.const 20 i32.add @@ -10378,11 +10455,11 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#delete + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has if i32.const 0 @@ -10392,14 +10469,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 1 i64.add - local.set $0 + local.set $1 br $for-loop|3 end end - local.get $1 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -10412,14 +10489,14 @@ unreachable end i64.const 0 - local.set $0 + local.set $1 loop $for-loop|4 - local.get $0 + local.get $1 i64.const 50 i64.lt_u if + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has if i32.const 0 @@ -10429,16 +10506,16 @@ call $~lib/builtins/abort unreachable end + local.get $2 + local.get $1 local.get $1 - local.get $0 - local.get $0 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set call $~lib/rt/pure/__release + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has i32.eqz if @@ -10449,11 +10526,11 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#delete + local.get $2 local.get $1 - local.get $0 call $~lib/map/Map#has if i32.const 0 @@ -10463,14 +10540,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 1 i64.add - local.set $0 + local.set $1 br $for-loop|4 end end - local.get $1 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -10482,9 +10559,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 call $~lib/map/Map#clear - local.get $1 + local.get $2 i32.load offset=20 if i32.const 0 @@ -10496,13 +10573,13 @@ end local.get $5 call $~lib/rt/pure/__release - local.get $7 + local.get $6 call $~lib/rt/pure/__release - local.get $2 + local.get $0 call $~lib/rt/pure/__release - local.get $6 + local.get $3 call $~lib/rt/pure/__release - local.get $1 + local.get $2 call $~lib/rt/pure/__release ) (func $~lib/map/Map#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) @@ -10806,41 +10883,32 @@ local.get $0 i32.load offset=4 ) - (func $~lib/map/Map#keys (param $0 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 f32) + (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - i32.load offset=8 - local.set $6 - local.get $0 - i32.load offset=16 - local.tee $9 - local.set $8 + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 27 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $5 i32.const 0 i32.store - local.get $0 + local.get $5 i32.const 0 i32.store offset=4 - local.get $0 + local.get $5 i32.const 0 i32.store offset=8 - local.get $0 + local.get $5 i32.const 0 i32.store offset=12 - local.get $9 + local.get $0 i32.const 268435452 i32.gt_u if @@ -10851,48 +10919,68 @@ call $~lib/builtins/abort unreachable end - local.get $8 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 2 i32.shl - local.tee $7 + local.tee $4 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $4 call $~lib/memory/memory.fill - local.get $3 - local.set $2 - local.get $3 - local.get $0 + local.get $2 + local.set $1 + local.get $2 + local.get $5 i32.load - local.tee $5 + local.tee $3 i32.ne if - local.get $2 + local.get $1 call $~lib/rt/pure/__retain - local.set $2 - local.get $5 + local.set $1 + local.get $3 call $~lib/rt/pure/__release end - local.get $0 - local.get $2 + local.get $5 + local.get $1 i32.store - local.get $0 - local.get $3 + local.get $5 + local.get $2 i32.store offset=4 - local.get $0 - local.get $7 + local.get $5 + local.get $4 i32.store offset=8 + local.get $5 local.get $0 - local.get $8 i32.store offset=12 + local.get $5 + ) + (func $~lib/map/Map#keys (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 f32) + local.get $0 + i32.load offset=8 + local.set $4 + local.get $0 + i32.load offset=16 + local.tee $5 + call $~lib/array/Array#constructor + local.set $0 loop $for-loop|0 - local.get $10 - local.get $9 + local.get $2 + local.get $5 i32.lt_s if - local.get $6 - local.get $10 + local.get $4 + local.get $2 i32.const 12 i32.mul i32.add @@ -10904,7 +10992,7 @@ if local.get $3 f32.load - local.set $4 + local.set $6 local.get $1 local.get $0 i32.load offset=12 @@ -10938,17 +11026,17 @@ i32.const 2 i32.shl i32.add - local.get $4 + local.get $6 f32.store local.get $1 i32.const 1 i32.add local.set $1 end - local.get $10 + local.get $2 i32.const 1 i32.add - local.set $10 + local.set $2 br $for-loop|0 end end @@ -11257,9 +11345,12 @@ (local $5 i32) (local $6 i32) (local $7 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 26 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $1 i32.const 16 @@ -11448,9 +11539,12 @@ local.get $1 call $~lib/map/Map#values local.set $7 + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 28 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $2 i32.const 16 @@ -12038,41 +12132,32 @@ local.get $0 i32.load offset=8 ) - (func $~lib/map/Map#keys (param $0 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 f64) + (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - i32.load offset=8 - local.set $6 - local.get $0 - i32.load offset=16 - local.tee $9 - local.set $8 + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 30 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $5 i32.const 0 i32.store - local.get $0 + local.get $5 i32.const 0 i32.store offset=4 - local.get $0 + local.get $5 i32.const 0 i32.store offset=8 - local.get $0 + local.get $5 i32.const 0 i32.store offset=12 - local.get $9 + local.get $0 i32.const 134217726 i32.gt_u if @@ -12083,48 +12168,68 @@ call $~lib/builtins/abort unreachable end - local.get $8 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 3 i32.shl - local.tee $7 + local.tee $4 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $4 call $~lib/memory/memory.fill - local.get $3 - local.set $2 - local.get $3 - local.get $0 + local.get $2 + local.set $1 + local.get $2 + local.get $5 i32.load - local.tee $5 + local.tee $3 i32.ne if - local.get $2 + local.get $1 call $~lib/rt/pure/__retain - local.set $2 - local.get $5 + local.set $1 + local.get $3 call $~lib/rt/pure/__release end - local.get $0 - local.get $2 + local.get $5 + local.get $1 i32.store - local.get $0 - local.get $3 + local.get $5 + local.get $2 i32.store offset=4 - local.get $0 - local.get $7 + local.get $5 + local.get $4 i32.store offset=8 + local.get $5 local.get $0 - local.get $8 i32.store offset=12 + local.get $5 + ) + (func $~lib/map/Map#keys (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 f64) + local.get $0 + i32.load offset=8 + local.set $4 + local.get $0 + i32.load offset=16 + local.tee $5 + call $~lib/array/Array#constructor + local.set $0 loop $for-loop|0 - local.get $10 - local.get $9 + local.get $2 + local.get $5 i32.lt_s if - local.get $6 - local.get $10 + local.get $4 + local.get $2 i32.const 4 i32.shl i32.add @@ -12136,7 +12241,7 @@ if local.get $3 f64.load - local.set $4 + local.set $6 local.get $1 local.get $0 i32.load offset=12 @@ -12170,17 +12275,17 @@ i32.const 3 i32.shl i32.add - local.get $4 + local.get $6 f64.store local.get $1 i32.const 1 i32.add local.set $1 end - local.get $10 + local.get $2 i32.const 1 i32.add - local.set $10 + local.set $2 br $for-loop|0 end end @@ -12525,9 +12630,12 @@ (local $5 i32) (local $6 i32) (local $7 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 29 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $1 i32.const 16 @@ -12716,9 +12824,12 @@ local.get $1 call $~lib/map/Map#values local.set $7 + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 31 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $2 i32.const 16 diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index 1e188883b7..9dc3260274 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -1,15 +1,14 @@ (module (type $f64_=>_f64 (func (param f64) (result f64))) (type $f64_f64_f64_=>_i32 (func (param f64 f64 f64) (result i32))) - (type $f32_f32_f32_=>_i32 (func (param f32 f32 f32) (result i32))) (type $f32_=>_f32 (func (param f32) (result f32))) (type $f64_f64_=>_f64 (func (param f64 f64) (result f64))) - (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) + (type $f32_f32_f32_=>_i32 (func (param f32 f32 f32) (result i32))) (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) (type $f32_f32_=>_f32 (func (param f32 f32) (result f32))) - (type $f32_f32_f32_f32_=>_i32 (func (param f32 f32 f32 f32) (result i32))) - (type $f64_f64_f64_f64_=>_i32 (func (param f64 f64 f64 f64) (result i32))) (type $none_=>_none (func)) + (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) + (type $f64_f64_f64_f64_=>_i32 (func (param f64 f64 f64 f64) (result i32))) (type $none_=>_f64 (func (result f64))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i64_=>_none (func (param i64))) @@ -18,9 +17,7 @@ (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i64_=>_i32 (func (param i64) (result i32))) - (type $f32_i32_f32_=>_i32 (func (param f32 i32 f32) (result i32))) (type $f64_=>_i32 (func (param f64) (result i32))) - (type $f64_i32_f64_=>_i32 (func (param f64 i32 f64) (result i32))) (type $i64_=>_i64 (func (param i64) (result i64))) (type $i64_i64_=>_i64 (func (param i64 i64) (result i64))) (type $f32_i32_=>_f32 (func (param f32 i32) (result f32))) @@ -462,22 +459,6 @@ end i32.const 1 ) - (func $std/math/test_scalbn (param $0 f64) (param $1 i32) (param $2 f64) (result i32) - local.get $0 - local.get $1 - call $~lib/math/NativeMath.scalbn - local.get $2 - f64.const 0 - call $std/math/check - ) - (func $std/math/test_scalbnf (param $0 f32) (param $1 i32) (param $2 f32) (result i32) - local.get $0 - local.get $1 - call $~lib/math/NativeMathf.scalbn - local.get $2 - f32.const 0 - call $std/math/check - ) (func $std/math/test_abs (param $0 f64) (param $1 f64) (result i32) local.get $0 f64.abs @@ -494,13 +475,6 @@ i32.const 0 end ) - (func $std/math/test_absf (param $0 f32) (param $1 f32) (result i32) - local.get $0 - f32.abs - local.get $1 - f32.const 0 - call $std/math/check - ) (func $~lib/math/R (param $0 f64) (result f64) local.get $0 local.get $0 @@ -819,13 +793,6 @@ f32.const 2 f32.mul ) - (func $std/math/test_acosf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - call $~lib/math/NativeMathf.acos - local.get $1 - local.get $2 - call $std/math/check - ) (func $~lib/math/NativeMath.log1p (param $0 f64) (result f64) (local $1 f64) (local $2 i32) @@ -1849,13 +1816,6 @@ local.get $1 f32.copysign ) - (func $std/math/test_asinf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - call $~lib/math/NativeMathf.asin - local.get $1 - local.get $2 - call $std/math/check - ) (func $std/math/test_asinh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 f64) (local $4 i64) @@ -2435,13 +2395,6 @@ local.get $1 f32.copysign ) - (func $std/math/test_atanf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - call $~lib/math/NativeMathf.atan - local.get $1 - local.get $2 - call $std/math/check - ) (func $std/math/test_atanh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 f64) (local $4 i64) @@ -2983,14 +2936,6 @@ i32.and select ) - (func $std/math/test_atan2f (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) - local.get $0 - local.get $1 - call $~lib/math/NativeMathf.atan2 - local.get $2 - local.get $3 - call $std/math/check - ) (func $~lib/math/NativeMath.cbrt (param $0 f64) (result f64) (local $1 f64) (local $2 i32) @@ -3227,13 +3172,6 @@ f64.div f32.demote_f64 ) - (func $std/math/test_cbrtf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - call $~lib/math/NativeMathf.cbrt - local.get $1 - local.get $2 - call $std/math/check - ) (func $std/math/test_ceil (param $0 f64) (param $1 f64) (result i32) local.get $0 f64.ceil @@ -3250,13 +3188,6 @@ i32.const 0 end ) - (func $std/math/test_ceilf (param $0 f32) (param $1 f32) (result i32) - local.get $0 - f32.ceil - local.get $1 - f32.const 0 - call $std/math/check - ) (func $~lib/math/pio2_large_quot (param $0 i64) (result i32) (local $1 i64) (local $2 i64) @@ -4164,13 +4095,6 @@ i32.and select ) - (func $std/math/test_cosf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - call $~lib/math/NativeMathf.cos - local.get $1 - local.get $2 - call $std/math/check - ) (func $~lib/math/NativeMath.expm1 (param $0 f64) (result f64) (local $1 f64) (local $2 i32) @@ -5130,13 +5054,6 @@ i32.const 0 end ) - (func $std/math/test_expf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - call $~lib/math/NativeMathf.exp - local.get $1 - local.get $2 - call $std/math/check - ) (func $std/math/test_expm1 (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.expm1 @@ -5153,13 +5070,6 @@ i32.const 0 end ) - (func $std/math/test_expm1f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - call $~lib/math/NativeMathf.expm1 - local.get $1 - local.get $2 - call $std/math/check - ) (func $~lib/math/NativeMath.exp2 (param $0 f64) (result f64) (local $1 i32) (local $2 f64) @@ -5473,13 +5383,6 @@ f32.demote_f64 end ) - (func $std/math/test_exp2f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - call $~lib/math/NativeMathf.exp2 - local.get $1 - local.get $2 - call $std/math/check - ) (func $std/math/test_floor (param $0 f64) (param $1 f64) (result i32) local.get $0 f64.floor @@ -5496,13 +5399,6 @@ i32.const 0 end ) - (func $std/math/test_floorf (param $0 f32) (param $1 f32) (result i32) - local.get $0 - f32.floor - local.get $1 - f32.const 0 - call $std/math/check - ) (func $~lib/math/NativeMath.hypot (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) @@ -5673,14 +5569,6 @@ f64.sqrt f64.mul ) - (func $std/math/test_hypot (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) - local.get $0 - local.get $1 - call $~lib/math/NativeMath.hypot - local.get $2 - local.get $3 - call $std/math/check - ) (func $~lib/math/NativeMathf.hypot (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) @@ -5786,14 +5674,6 @@ f32.sqrt f32.mul ) - (func $std/math/test_hypotf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) - local.get $0 - local.get $1 - call $~lib/math/NativeMathf.hypot - local.get $2 - local.get $3 - call $std/math/check - ) (func $std/math/test_log (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.log @@ -5810,13 +5690,6 @@ i32.const 0 end ) - (func $std/math/test_logf (param $0 f32) (param $1 f32) (result i32) - local.get $0 - call $~lib/math/NativeMathf.log - local.get $1 - f32.const 0 - call $std/math/check - ) (func $~lib/math/NativeMath.log10 (param $0 f64) (result f64) (local $1 i32) (local $2 i64) @@ -6191,13 +6064,6 @@ f32.mul f32.add ) - (func $std/math/test_log10f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - call $~lib/math/NativeMathf.log10 - local.get $1 - local.get $2 - call $std/math/check - ) (func $std/math/test_log1p (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.log1p @@ -6214,13 +6080,6 @@ i32.const 0 end ) - (func $std/math/test_log1pf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - call $~lib/math/NativeMathf.log1p - local.get $1 - local.get $2 - call $std/math/check - ) (func $~lib/math/NativeMath.log2 (param $0 f64) (result f64) (local $1 i32) (local $2 i64) @@ -6579,13 +6438,6 @@ f32.convert_i32_s f32.add ) - (func $std/math/test_log2f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - call $~lib/math/NativeMathf.log2 - local.get $1 - local.get $2 - call $std/math/check - ) (func $std/math/test_max (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 local.get $1 @@ -6604,14 +6456,6 @@ i32.const 0 end ) - (func $std/math/test_maxf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - local.get $1 - f32.max - local.get $2 - f32.const 0 - call $std/math/check - ) (func $std/math/test_min (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 local.get $1 @@ -6630,14 +6474,6 @@ i32.const 0 end ) - (func $std/math/test_minf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - local.get $1 - f32.min - local.get $2 - f32.const 0 - call $std/math/check - ) (func $~lib/math/NativeMath.mod (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) @@ -7067,14 +6903,6 @@ f32.const 0 f32.mul ) - (func $std/math/test_modf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - local.get $1 - call $~lib/math/NativeMathf.mod - local.get $2 - f32.const 0 - call $std/math/check - ) (func $~lib/math/NativeMath.pow (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) @@ -8319,14 +8147,6 @@ i32.or f32.reinterpret_i32 ) - (func $std/math/test_powf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) - local.get $0 - local.get $1 - call $~lib/math/NativeMathf.pow - local.get $2 - local.get $3 - call $std/math/check - ) (func $~lib/math/murmurHash3 (param $0 i64) (result i64) local.get $0 local.get $0 @@ -8731,14 +8551,6 @@ local.get $7 select ) - (func $std/math/test_rem (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - local.get $0 - local.get $1 - call $~lib/math/NativeMath.rem - local.get $2 - f64.const 0 - call $std/math/check - ) (func $~lib/math/NativeMathf.rem (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) @@ -8978,14 +8790,6 @@ local.get $5 select ) - (func $std/math/test_remf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - local.get $1 - call $~lib/math/NativeMathf.rem - local.get $2 - f32.const 0 - call $std/math/check - ) (func $~lib/math/NativeMath.sin (param $0 f64) (result f64) (local $1 f64) (local $2 i64) @@ -9589,13 +9393,6 @@ i32.and select ) - (func $std/math/test_sinf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - call $~lib/math/NativeMathf.sin - local.get $1 - local.get $2 - call $std/math/check - ) (func $~lib/math/NativeMath.sinh (param $0 f64) (result f64) (local $1 f64) (local $2 f64) @@ -9761,13 +9558,6 @@ f32.const 1661534994731144841129758e11 f32.mul ) - (func $std/math/test_sinhf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - call $~lib/math/NativeMathf.sinh - local.get $1 - local.get $2 - call $std/math/check - ) (func $std/math/test_sqrt (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 f64.sqrt @@ -9784,13 +9574,6 @@ i32.const 0 end ) - (func $std/math/test_sqrtf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - f32.sqrt - local.get $1 - local.get $2 - call $std/math/check - ) (func $~lib/math/tan_kern (param $0 f64) (param $1 f64) (param $2 i32) (result f64) (local $3 f64) (local $4 f64) @@ -10418,13 +10201,6 @@ select f32.demote_f64 ) - (func $std/math/test_tanf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - local.get $0 - call $~lib/math/NativeMathf.tan - local.get $1 - local.get $2 - call $std/math/check - ) (func $~lib/math/NativeMath.tanh (param $0 f64) (result f64) (local $1 f64) (local $2 i32) @@ -10609,13 +10385,6 @@ i32.const 0 end ) - (func $std/math/test_truncf (param $0 f32) (param $1 f32) (result i32) - local.get $0 - f32.trunc - local.get $1 - f32.const 0 - call $std/math/check - ) (func $~lib/math/NativeMath.sincos (param $0 f64) (local $1 f64) (local $2 f64) @@ -11330,8 +11099,10 @@ end f64.const -8.06684839057968 i32.const -2 + call $~lib/math/NativeMath.scalbn f64.const -2.01671209764492 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11343,8 +11114,10 @@ end f64.const 4.345239849338305 i32.const -1 + call $~lib/math/NativeMath.scalbn f64.const 2.1726199246691524 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11356,8 +11129,10 @@ end f64.const -8.38143342755525 i32.const 0 + call $~lib/math/NativeMath.scalbn f64.const -8.38143342755525 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11369,8 +11144,10 @@ end f64.const -6.531673581913484 i32.const 1 + call $~lib/math/NativeMath.scalbn f64.const -13.063347163826968 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11382,8 +11159,10 @@ end f64.const 9.267056966972586 i32.const 2 + call $~lib/math/NativeMath.scalbn f64.const 37.06822786789034 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11395,8 +11174,10 @@ end f64.const 0.6619858980995045 i32.const 3 + call $~lib/math/NativeMath.scalbn f64.const 5.295887184796036 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11408,8 +11189,10 @@ end f64.const -0.4066039223853553 i32.const 4 + call $~lib/math/NativeMath.scalbn f64.const -6.505662758165685 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11421,8 +11204,10 @@ end f64.const 0.5617597462207241 i32.const 5 + call $~lib/math/NativeMath.scalbn f64.const 17.97631187906317 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11434,8 +11219,10 @@ end f64.const 0.7741522965913037 i32.const 6 + call $~lib/math/NativeMath.scalbn f64.const 49.545746981843436 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11447,8 +11234,10 @@ end f64.const -0.6787637026394024 i32.const 7 + call $~lib/math/NativeMath.scalbn f64.const -86.88175393784351 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11460,8 +11249,10 @@ end f64.const 0 i32.const 2147483647 + call $~lib/math/NativeMath.scalbn + f64.const 0 f64.const 0 - call $std/math/test_scalbn + call $std/math/check i32.eqz if i32.const 0 @@ -11473,8 +11264,10 @@ end f64.const 0 i32.const -2147483647 + call $~lib/math/NativeMath.scalbn + f64.const 0 f64.const 0 - call $std/math/test_scalbn + call $std/math/check i32.eqz if i32.const 0 @@ -11486,8 +11279,10 @@ end f64.const -0 i32.const 2147483647 + call $~lib/math/NativeMath.scalbn f64.const -0 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11499,8 +11294,10 @@ end f64.const nan:0x8000000000000 i32.const 0 + call $~lib/math/NativeMath.scalbn f64.const nan:0x8000000000000 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11512,8 +11309,10 @@ end f64.const inf i32.const 0 + call $~lib/math/NativeMath.scalbn f64.const inf - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11525,8 +11324,10 @@ end f64.const -inf i32.const 0 + call $~lib/math/NativeMath.scalbn f64.const -inf - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11538,8 +11339,10 @@ end f64.const 1 i32.const 0 + call $~lib/math/NativeMath.scalbn f64.const 1 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11551,8 +11354,10 @@ end f64.const 1 i32.const 1 + call $~lib/math/NativeMath.scalbn f64.const 2 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11564,8 +11369,10 @@ end f64.const 1 i32.const -1 + call $~lib/math/NativeMath.scalbn f64.const 0.5 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11577,8 +11384,10 @@ end f64.const 1 i32.const 2147483647 + call $~lib/math/NativeMath.scalbn f64.const inf - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11590,8 +11399,10 @@ end f64.const nan:0x8000000000000 i32.const 1 + call $~lib/math/NativeMath.scalbn f64.const nan:0x8000000000000 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11603,8 +11414,10 @@ end f64.const inf i32.const 2147483647 + call $~lib/math/NativeMath.scalbn f64.const inf - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11616,8 +11429,10 @@ end f64.const inf i32.const -2147483647 + call $~lib/math/NativeMath.scalbn f64.const inf - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11629,8 +11444,10 @@ end f64.const -inf i32.const 2147483647 + call $~lib/math/NativeMath.scalbn f64.const -inf - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11642,8 +11459,10 @@ end f64.const 8988465674311579538646525e283 i32.const -2097 + call $~lib/math/NativeMath.scalbn f64.const 5e-324 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11655,8 +11474,10 @@ end f64.const 5e-324 i32.const 2097 + call $~lib/math/NativeMath.scalbn f64.const 8988465674311579538646525e283 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11668,8 +11489,10 @@ end f64.const 1.000244140625 i32.const -1074 + call $~lib/math/NativeMath.scalbn f64.const 5e-324 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11681,8 +11504,10 @@ end f64.const 0.7499999999999999 i32.const -1073 + call $~lib/math/NativeMath.scalbn f64.const 5e-324 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11694,8 +11519,10 @@ end f64.const 0.5000000000000012 i32.const -1024 + call $~lib/math/NativeMath.scalbn f64.const 2.781342323134007e-309 - call $std/math/test_scalbn + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11707,8 +11534,10 @@ end f32.const -8.066848754882812 i32.const -2 + call $~lib/math/NativeMathf.scalbn f32.const -2.016712188720703 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11720,8 +11549,10 @@ end f32.const 4.345239639282227 i32.const -1 + call $~lib/math/NativeMathf.scalbn f32.const 2.1726198196411133 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11733,8 +11564,10 @@ end f32.const -8.381433486938477 i32.const 0 + call $~lib/math/NativeMathf.scalbn f32.const -8.381433486938477 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11746,8 +11579,10 @@ end f32.const -6.531673431396484 i32.const 1 + call $~lib/math/NativeMathf.scalbn f32.const -13.063346862792969 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11759,8 +11594,10 @@ end f32.const 9.267057418823242 i32.const 2 + call $~lib/math/NativeMathf.scalbn f32.const 37.06822967529297 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11772,8 +11609,10 @@ end f32.const 0.6619858741760254 i32.const 3 + call $~lib/math/NativeMathf.scalbn f32.const 5.295886993408203 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11785,8 +11624,10 @@ end f32.const -0.40660393238067627 i32.const 4 + call $~lib/math/NativeMathf.scalbn f32.const -6.50566291809082 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11798,8 +11639,10 @@ end f32.const 0.5617597699165344 i32.const 5 + call $~lib/math/NativeMathf.scalbn f32.const 17.9763126373291 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11811,8 +11654,10 @@ end f32.const 0.7741522789001465 i32.const 6 + call $~lib/math/NativeMathf.scalbn f32.const 49.545745849609375 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11824,8 +11669,10 @@ end f32.const -0.6787636876106262 i32.const 7 + call $~lib/math/NativeMathf.scalbn f32.const -86.88175201416016 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11837,8 +11684,10 @@ end f32.const 0 i32.const 2147483647 + call $~lib/math/NativeMathf.scalbn + f32.const 0 f32.const 0 - call $std/math/test_scalbnf + call $std/math/check i32.eqz if i32.const 0 @@ -11850,8 +11699,10 @@ end f32.const 0 i32.const -2147483647 + call $~lib/math/NativeMathf.scalbn + f32.const 0 f32.const 0 - call $std/math/test_scalbnf + call $std/math/check i32.eqz if i32.const 0 @@ -11863,8 +11714,10 @@ end f32.const -0 i32.const 2147483647 + call $~lib/math/NativeMathf.scalbn f32.const -0 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11876,8 +11729,10 @@ end f32.const nan:0x400000 i32.const 0 + call $~lib/math/NativeMathf.scalbn f32.const nan:0x400000 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11889,8 +11744,10 @@ end f32.const inf i32.const 0 + call $~lib/math/NativeMathf.scalbn f32.const inf - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11902,8 +11759,10 @@ end f32.const -inf i32.const 0 + call $~lib/math/NativeMathf.scalbn f32.const -inf - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11915,8 +11774,10 @@ end f32.const 1 i32.const 0 + call $~lib/math/NativeMathf.scalbn f32.const 1 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11928,8 +11789,10 @@ end f32.const 1 i32.const 1 + call $~lib/math/NativeMathf.scalbn f32.const 2 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11941,8 +11804,10 @@ end f32.const 1 i32.const -1 + call $~lib/math/NativeMathf.scalbn f32.const 0.5 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11954,8 +11819,10 @@ end f32.const 1 i32.const 2147483647 + call $~lib/math/NativeMathf.scalbn f32.const inf - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11967,8 +11834,10 @@ end f32.const nan:0x400000 i32.const 1 + call $~lib/math/NativeMathf.scalbn f32.const nan:0x400000 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11980,8 +11849,10 @@ end f32.const inf i32.const 2147483647 + call $~lib/math/NativeMathf.scalbn f32.const inf - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -11993,8 +11864,10 @@ end f32.const inf i32.const -2147483647 + call $~lib/math/NativeMathf.scalbn f32.const inf - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12006,8 +11879,10 @@ end f32.const -inf i32.const 2147483647 + call $~lib/math/NativeMathf.scalbn f32.const -inf - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12019,8 +11894,10 @@ end f32.const 1701411834604692317316873e14 i32.const -276 + call $~lib/math/NativeMathf.scalbn f32.const 1.401298464324817e-45 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12032,8 +11909,10 @@ end f32.const 1.401298464324817e-45 i32.const 276 + call $~lib/math/NativeMathf.scalbn f32.const 1701411834604692317316873e14 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12045,8 +11924,10 @@ end f32.const 1.000244140625 i32.const -149 + call $~lib/math/NativeMathf.scalbn f32.const 1.401298464324817e-45 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12058,8 +11939,10 @@ end f32.const 0.7499999403953552 i32.const -148 + call $~lib/math/NativeMathf.scalbn f32.const 1.401298464324817e-45 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12071,8 +11954,10 @@ end f32.const 0.5000006556510925 i32.const -128 + call $~lib/math/NativeMathf.scalbn f32.const 1.4693693398263237e-39 - call $std/math/test_scalbnf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12286,9 +12171,10 @@ call $~lib/builtins/abort unreachable end - f32.const -8.066848754882812 f32.const 8.066848754882812 - call $std/math/test_absf + f32.const 8.066848754882812 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12300,7 +12186,8 @@ end f32.const 4.345239639282227 f32.const 4.345239639282227 - call $std/math/test_absf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12310,9 +12197,10 @@ call $~lib/builtins/abort unreachable end - f32.const -8.381433486938477 f32.const 8.381433486938477 - call $std/math/test_absf + f32.const 8.381433486938477 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12322,9 +12210,10 @@ call $~lib/builtins/abort unreachable end - f32.const -6.531673431396484 f32.const 6.531673431396484 - call $std/math/test_absf + f32.const 6.531673431396484 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12336,7 +12225,8 @@ end f32.const 9.267057418823242 f32.const 9.267057418823242 - call $std/math/test_absf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12348,7 +12238,8 @@ end f32.const 0.6619858741760254 f32.const 0.6619858741760254 - call $std/math/test_absf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12358,9 +12249,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.40660393238067627 f32.const 0.40660393238067627 - call $std/math/test_absf + f32.const 0.40660393238067627 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12372,7 +12264,8 @@ end f32.const 0.5617597699165344 f32.const 0.5617597699165344 - call $std/math/test_absf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12384,7 +12277,8 @@ end f32.const 0.7741522789001465 f32.const 0.7741522789001465 - call $std/math/test_absf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12394,9 +12288,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.6787636876106262 f32.const 0.6787636876106262 - call $std/math/test_absf + f32.const 0.6787636876106262 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12408,7 +12303,8 @@ end f32.const 0 f32.const 0 - call $std/math/test_absf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12418,9 +12314,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0 f32.const 0 - call $std/math/test_absf + f32.const 0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12432,7 +12329,8 @@ end f32.const 1 f32.const 1 - call $std/math/test_absf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12442,9 +12340,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1 f32.const 1 - call $std/math/test_absf + f32.const 1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12456,7 +12355,8 @@ end f32.const inf f32.const inf - call $std/math/test_absf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12466,9 +12366,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf f32.const inf - call $std/math/test_absf + f32.const inf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12480,7 +12381,8 @@ end f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_absf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -12751,9 +12653,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12764,9 +12667,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12777,9 +12681,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12790,9 +12695,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12803,9 +12709,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12816,9 +12723,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.acos f32.const 0.8473311066627502 f32.const -0.13588131964206696 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12829,9 +12737,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.acos f32.const 1.989530086517334 f32.const 0.03764917701482773 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12842,9 +12751,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.acos f32.const 0.9742849469184875 f32.const 0.18443739414215088 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12855,9 +12765,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.acos f32.const 0.6854215264320374 f32.const -0.29158344864845276 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12868,9 +12779,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.acos f32.const 2.3168740272521973 f32.const -0.3795364499092102 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12881,9 +12793,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.acos f32.const 1.5707963705062866 f32.const 0.3666777014732361 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12894,9 +12807,10 @@ unreachable end f32.const -1 + call $~lib/math/NativeMathf.acos f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12907,9 +12821,10 @@ unreachable end f32.const 1 + call $~lib/math/NativeMathf.acos f32.const 0 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12920,9 +12835,10 @@ unreachable end f32.const 1.0000001192092896 + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12933,9 +12849,10 @@ unreachable end f32.const -1.0000001192092896 + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12946,9 +12863,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12959,9 +12877,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12972,9 +12891,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.acos f32.const nan:0x400000 f32.const 0 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12985,9 +12905,10 @@ unreachable end f32.const 0.49965065717697144 + call $~lib/math/NativeMathf.acos f32.const 1.0476008653640747 f32.const -0.21161814033985138 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -12998,9 +12919,10 @@ unreachable end f32.const -0.5051405429840088 + call $~lib/math/NativeMathf.acos f32.const 2.1003410816192627 f32.const -0.20852705836296082 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -13011,9 +12933,10 @@ unreachable end f32.const -0.5189794898033142 + call $~lib/math/NativeMathf.acos f32.const 2.116452932357788 f32.const -0.14600826799869537 - call $std/math/test_acosf + call $std/math/check i32.eqz if i32.const 0 @@ -13778,9 +13701,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -13791,9 +13715,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -13804,9 +13729,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -13817,9 +13743,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -13830,9 +13757,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -13843,9 +13771,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.asin f32.const 0.7234652042388916 f32.const -0.1307632476091385 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -13856,9 +13785,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.asin f32.const -0.41873374581336975 f32.const 0.3161141574382782 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -13869,9 +13799,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.asin f32.const 0.5965113639831543 f32.const -0.4510819613933563 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -13882,9 +13813,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.asin f32.const 0.8853747844696045 f32.const 0.02493886835873127 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -13895,9 +13827,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.asin f32.const -0.7460777759552002 f32.const 0.2515012323856354 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -13908,9 +13841,10 @@ unreachable end f32.const 1 + call $~lib/math/NativeMathf.asin f32.const 1.5707963705062866 f32.const 0.3666777014732361 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -13921,9 +13855,10 @@ unreachable end f32.const -1 + call $~lib/math/NativeMathf.asin f32.const -1.5707963705062866 f32.const -0.3666777014732361 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -13934,9 +13869,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.asin f32.const 0 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -13947,9 +13883,10 @@ unreachable end f32.const -0 + call $~lib/math/NativeMathf.asin f32.const -0 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -13960,9 +13897,10 @@ unreachable end f32.const 1.0000001192092896 + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -13973,9 +13911,10 @@ unreachable end f32.const -1.0000001192092896 + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -13986,9 +13925,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -13999,9 +13939,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -14012,9 +13953,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.asin f32.const nan:0x400000 f32.const 0 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -14025,9 +13967,10 @@ unreachable end f32.const 0.5004770159721375 + call $~lib/math/NativeMathf.asin f32.const 0.5241496562957764 f32.const -0.29427099227905273 - call $std/math/test_asinf + call $std/math/check i32.eqz if i32.const 0 @@ -14662,9 +14605,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.atan f32.const -1.4474613666534424 f32.const 0.12686480581760406 - call $std/math/test_atanf + call $std/math/check i32.eqz if i32.const 0 @@ -14675,9 +14619,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.atan f32.const 1.3445979356765747 f32.const 0.16045434772968292 - call $std/math/test_atanf + call $std/math/check i32.eqz if i32.const 0 @@ -14688,9 +14633,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.atan f32.const -1.4520463943481445 f32.const -0.39581751823425293 - call $std/math/test_atanf + call $std/math/check i32.eqz if i32.const 0 @@ -14701,9 +14647,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.atan f32.const -1.418875813484192 f32.const 0.410570353269577 - call $std/math/test_atanf + call $std/math/check i32.eqz if i32.const 0 @@ -14714,9 +14661,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.atan f32.const 1.4633032083511353 f32.const 0.48403501510620117 - call $std/math/test_atanf + call $std/math/check i32.eqz if i32.const 0 @@ -14727,9 +14675,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.atan f32.const 0.5847550630569458 f32.const 0.2125193476676941 - call $std/math/test_atanf + call $std/math/check i32.eqz if i32.const 0 @@ -14740,9 +14689,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.atan f32.const -0.386186420917511 f32.const 0.18169628083705902 - call $std/math/test_atanf + call $std/math/check i32.eqz if i32.const 0 @@ -14753,9 +14703,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.atan f32.const 0.5118269920349121 f32.const 0.3499770760536194 - call $std/math/test_atanf + call $std/math/check i32.eqz if i32.const 0 @@ -14766,9 +14717,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.atan f32.const 0.6587802171707153 f32.const -0.2505330741405487 - call $std/math/test_atanf + call $std/math/check i32.eqz if i32.const 0 @@ -14779,9 +14731,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.atan f32.const -0.5963307619094849 f32.const 0.17614826560020447 - call $std/math/test_atanf + call $std/math/check i32.eqz if i32.const 0 @@ -14792,9 +14745,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.atan f32.const 0 f32.const 0 - call $std/math/test_atanf + call $std/math/check i32.eqz if i32.const 0 @@ -14805,9 +14759,10 @@ unreachable end f32.const -0 + call $~lib/math/NativeMathf.atan f32.const -0 f32.const 0 - call $std/math/test_atanf + call $std/math/check i32.eqz if i32.const 0 @@ -14818,9 +14773,10 @@ unreachable end f32.const 1 + call $~lib/math/NativeMathf.atan f32.const 0.7853981852531433 f32.const 0.3666777014732361 - call $std/math/test_atanf + call $std/math/check i32.eqz if i32.const 0 @@ -14831,9 +14787,10 @@ unreachable end f32.const -1 + call $~lib/math/NativeMathf.atan f32.const -0.7853981852531433 f32.const -0.3666777014732361 - call $std/math/test_atanf + call $std/math/check i32.eqz if i32.const 0 @@ -14844,9 +14801,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.atan f32.const 1.5707963705062866 f32.const 0.3666777014732361 - call $std/math/test_atanf + call $std/math/check i32.eqz if i32.const 0 @@ -14857,9 +14815,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.atan f32.const -1.5707963705062866 f32.const -0.3666777014732361 - call $std/math/test_atanf + call $std/math/check i32.eqz if i32.const 0 @@ -14870,9 +14829,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.atan f32.const nan:0x400000 f32.const 0 - call $std/math/test_atanf + call $std/math/check i32.eqz if i32.const 0 @@ -16068,9 +16028,10 @@ end f32.const -8.066848754882812 f32.const 4.535662651062012 + call $~lib/math/NativeMathf.atan2 f32.const -1.0585895776748657 f32.const -0.22352588176727295 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16082,9 +16043,10 @@ end f32.const 4.345239639282227 f32.const -8.887990951538086 + call $~lib/math/NativeMathf.atan2 f32.const 2.686873435974121 f32.const 0.09464472532272339 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16096,9 +16058,10 @@ end f32.const -8.381433486938477 f32.const -2.7636072635650635 + call $~lib/math/NativeMathf.atan2 f32.const -1.8893001079559326 f32.const -0.21941901743412018 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16110,9 +16073,10 @@ end f32.const -6.531673431396484 f32.const 4.567535400390625 + call $~lib/math/NativeMathf.atan2 f32.const -0.9605468511581421 f32.const 0.46015575528144836 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16124,9 +16088,10 @@ end f32.const 9.267057418823242 f32.const 4.811392307281494 + call $~lib/math/NativeMathf.atan2 f32.const 1.0919123888015747 f32.const -0.05708503723144531 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16138,9 +16103,10 @@ end f32.const -6.450045585632324 f32.const 0.6620717644691467 + call $~lib/math/NativeMathf.atan2 f32.const -1.4685084819793701 f32.const 0.19611206650733948 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16152,9 +16118,10 @@ end f32.const 7.858890056610107 f32.const 0.052154526114463806 + call $~lib/math/NativeMathf.atan2 f32.const 1.5641601085662842 f32.const 0.48143187165260315 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16166,9 +16133,10 @@ end f32.const -0.7920545339584351 f32.const 7.676402568817139 + call $~lib/math/NativeMathf.atan2 f32.const -0.10281659662723541 f32.const -0.4216274917125702 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16180,9 +16148,10 @@ end f32.const 0.6157026886940002 f32.const 2.0119025707244873 + call $~lib/math/NativeMathf.atan2 f32.const 0.29697975516319275 f32.const 0.2322007566690445 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16194,9 +16163,10 @@ end f32.const -0.5587586760520935 f32.const 0.03223983198404312 + call $~lib/math/NativeMathf.atan2 f32.const -1.5131611824035645 f32.const 0.16620726883411407 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16208,9 +16178,10 @@ end f32.const 0 f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const 0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16222,9 +16193,10 @@ end f32.const 0 f32.const -0 + call $~lib/math/NativeMathf.atan2 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16236,9 +16208,10 @@ end f32.const 0 f32.const -1 + call $~lib/math/NativeMathf.atan2 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16250,9 +16223,10 @@ end f32.const 0 f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16264,9 +16238,10 @@ end f32.const 0 f32.const 1 + call $~lib/math/NativeMathf.atan2 f32.const 0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16278,9 +16253,10 @@ end f32.const 0 f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const 0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16292,9 +16268,10 @@ end f32.const -0 f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const -0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16306,9 +16283,10 @@ end f32.const -0 f32.const -0 + call $~lib/math/NativeMathf.atan2 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16320,9 +16298,10 @@ end f32.const -0 f32.const -1 + call $~lib/math/NativeMathf.atan2 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16334,9 +16313,10 @@ end f32.const -0 f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16348,9 +16328,10 @@ end f32.const -0 f32.const 1 + call $~lib/math/NativeMathf.atan2 f32.const -0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16362,9 +16343,10 @@ end f32.const -0 f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const -0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16376,9 +16358,10 @@ end f32.const -1 f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16390,9 +16373,10 @@ end f32.const -1 f32.const -0 + call $~lib/math/NativeMathf.atan2 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16404,9 +16388,10 @@ end f32.const 1 f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16418,9 +16403,10 @@ end f32.const 1 f32.const -0 + call $~lib/math/NativeMathf.atan2 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16432,9 +16418,10 @@ end f32.const -1 f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const -0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16446,9 +16433,10 @@ end f32.const 1 f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const 0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16460,9 +16448,10 @@ end f32.const -1 f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16474,9 +16463,10 @@ end f32.const 1 f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16488,9 +16478,10 @@ end f32.const inf f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16502,9 +16493,10 @@ end f32.const -inf f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16516,9 +16508,10 @@ end f32.const inf f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const 0.7853981852531433 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16530,9 +16523,10 @@ end f32.const inf f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const 2.356194496154785 f32.const 0.02500828728079796 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16544,9 +16538,10 @@ end f32.const -inf f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const -0.7853981852531433 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16558,9 +16553,10 @@ end f32.const -inf f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const -2.356194496154785 f32.const -0.02500828728079796 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16572,9 +16568,10 @@ end f32.const 5.877471754111438e-39 f32.const 1 + call $~lib/math/NativeMathf.atan2 f32.const 5.877471754111438e-39 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16586,9 +16583,10 @@ end f32.const 1 f32.const 1701411834604692317316873e14 + call $~lib/math/NativeMathf.atan2 f32.const 5.877471754111438e-39 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -16859,9 +16857,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.cbrt f32.const -2.0055553913116455 f32.const -0.44719240069389343 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -16872,9 +16871,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.cbrt f32.const 1.6318162679672241 f32.const 0.44636252522468567 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -16885,9 +16885,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.cbrt f32.const -2.0312938690185547 f32.const 0.19483426213264465 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -16898,9 +16899,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.cbrt f32.const -1.8692820072174072 f32.const -0.17075514793395996 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -16911,9 +16913,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.cbrt f32.const 2.1004576683044434 f32.const -0.36362043023109436 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -16924,9 +16927,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.cbrt f32.const 0.8715311288833618 f32.const -0.12857209146022797 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -16937,9 +16941,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.cbrt f32.const -0.7408390641212463 f32.const -0.4655757546424866 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -16950,9 +16955,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.cbrt f32.const 0.8251195549964905 f32.const 0.05601907894015312 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -16963,9 +16969,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.cbrt f32.const 0.9182102680206299 f32.const 0.45498204231262207 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -16976,9 +16983,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.cbrt f32.const -0.8788326978683472 f32.const -0.22978967428207397 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -16989,9 +16997,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.cbrt f32.const nan:0x400000 f32.const 0 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -17002,9 +17011,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.cbrt f32.const inf f32.const 0 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -17015,9 +17025,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.cbrt f32.const -inf f32.const 0 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -17028,9 +17039,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.cbrt f32.const 0 f32.const 0 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -17041,9 +17053,10 @@ unreachable end f32.const -0 + call $~lib/math/NativeMathf.cbrt f32.const -0 f32.const 0 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -17054,9 +17067,10 @@ unreachable end f32.const 9.313225746154785e-10 + call $~lib/math/NativeMathf.cbrt f32.const 0.0009765625 f32.const 0 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -17067,9 +17081,10 @@ unreachable end f32.const -9.313225746154785e-10 + call $~lib/math/NativeMathf.cbrt f32.const -0.0009765625 f32.const 0 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -17080,9 +17095,10 @@ unreachable end f32.const 1 + call $~lib/math/NativeMathf.cbrt f32.const 1 f32.const 0 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -17093,9 +17109,10 @@ unreachable end f32.const -1 + call $~lib/math/NativeMathf.cbrt f32.const -1 f32.const 0 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -17106,9 +17123,10 @@ unreachable end f32.const 8 + call $~lib/math/NativeMathf.cbrt f32.const 2 f32.const 0 - call $std/math/test_cbrtf + call $std/math/check i32.eqz if i32.const 0 @@ -17778,9 +17796,10 @@ call $~lib/builtins/abort unreachable end - f32.const -8.066848754882812 f32.const -8 - call $std/math/test_ceilf + f32.const -8 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17790,9 +17809,10 @@ call $~lib/builtins/abort unreachable end - f32.const 4.345239639282227 f32.const 5 - call $std/math/test_ceilf + f32.const 5 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17802,9 +17822,10 @@ call $~lib/builtins/abort unreachable end - f32.const -8.381433486938477 f32.const -8 - call $std/math/test_ceilf + f32.const -8 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17814,9 +17835,10 @@ call $~lib/builtins/abort unreachable end - f32.const -6.531673431396484 f32.const -6 - call $std/math/test_ceilf + f32.const -6 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17826,9 +17848,10 @@ call $~lib/builtins/abort unreachable end - f32.const 9.267057418823242 f32.const 10 - call $std/math/test_ceilf + f32.const 10 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17838,9 +17861,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.6619858741760254 f32.const 1 - call $std/math/test_ceilf + f32.const 1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17850,9 +17874,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.40660393238067627 f32.const -0 - call $std/math/test_ceilf + f32.const -0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17862,9 +17887,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.5617597699165344 f32.const 1 - call $std/math/test_ceilf + f32.const 1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17874,9 +17900,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.7741522789001465 f32.const 1 - call $std/math/test_ceilf + f32.const 1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17886,9 +17913,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.6787636876106262 f32.const -0 - call $std/math/test_ceilf + f32.const -0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17900,7 +17928,8 @@ end f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17912,7 +17941,8 @@ end f32.const inf f32.const inf - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17924,7 +17954,8 @@ end f32.const -inf f32.const -inf - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17936,7 +17967,8 @@ end f32.const 0 f32.const 0 - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17948,7 +17980,8 @@ end f32.const -0 f32.const -0 - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17960,7 +17993,8 @@ end f32.const 1 f32.const 1 - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17972,7 +18006,8 @@ end f32.const -1 f32.const -1 - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17982,9 +18017,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.5 f32.const 1 - call $std/math/test_ceilf + f32.const 1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -17994,9 +18030,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.5 f32.const -0 - call $std/math/test_ceilf + f32.const -0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18006,9 +18043,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1.0000152587890625 f32.const 2 - call $std/math/test_ceilf + f32.const 2 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18018,9 +18056,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1.0000152587890625 f32.const -1 - call $std/math/test_ceilf + f32.const -1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18030,9 +18069,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.9999923706054688 f32.const 1 - call $std/math/test_ceilf + f32.const 1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18042,9 +18082,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.9999923706054688 f32.const -0 - call $std/math/test_ceilf + f32.const -0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18054,9 +18095,10 @@ call $~lib/builtins/abort unreachable end - f32.const 7.888609052210118e-31 f32.const 1 - call $std/math/test_ceilf + f32.const 1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18066,9 +18108,10 @@ call $~lib/builtins/abort unreachable end - f32.const -7.888609052210118e-31 f32.const -0 - call $std/math/test_ceilf + f32.const -0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18080,7 +18123,8 @@ end f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18092,7 +18136,8 @@ end f32.const inf f32.const inf - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18104,7 +18149,8 @@ end f32.const -inf f32.const -inf - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18116,7 +18162,8 @@ end f32.const 0 f32.const 0 - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18128,7 +18175,8 @@ end f32.const -0 f32.const -0 - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18140,7 +18188,8 @@ end f32.const 1 f32.const 1 - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18152,7 +18201,8 @@ end f32.const -1 f32.const -1 - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18162,9 +18212,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.5 f32.const 1 - call $std/math/test_ceilf + f32.const 1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18174,9 +18225,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.5 f32.const -0 - call $std/math/test_ceilf + f32.const -0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18186,9 +18238,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1.0000152587890625 f32.const 2 - call $std/math/test_ceilf + f32.const 2 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18198,9 +18251,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1.0000152587890625 f32.const -1 - call $std/math/test_ceilf + f32.const -1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18210,9 +18264,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.9999923706054688 f32.const 1 - call $std/math/test_ceilf + f32.const 1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18222,9 +18277,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.9999923706054688 f32.const -0 - call $std/math/test_ceilf + f32.const -0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18234,9 +18290,10 @@ call $~lib/builtins/abort unreachable end - f32.const 7.888609052210118e-31 f32.const 1 - call $std/math/test_ceilf + f32.const 1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18246,9 +18303,10 @@ call $~lib/builtins/abort unreachable end - f32.const -7.888609052210118e-31 f32.const -0 - call $std/math/test_ceilf + f32.const -0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18260,7 +18318,8 @@ end f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18272,7 +18331,8 @@ end f32.const inf f32.const inf - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18284,7 +18344,8 @@ end f32.const -inf f32.const -inf - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18296,7 +18357,8 @@ end f32.const 0 f32.const 0 - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18308,7 +18370,8 @@ end f32.const -0 f32.const -0 - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18320,7 +18383,8 @@ end f32.const 1 f32.const 1 - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18332,7 +18396,8 @@ end f32.const -1 f32.const -1 - call $std/math/test_ceilf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18342,9 +18407,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.5 f32.const 1 - call $std/math/test_ceilf + f32.const 1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18354,9 +18420,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.5 f32.const -0 - call $std/math/test_ceilf + f32.const -0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18366,9 +18433,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1.0000152587890625 f32.const 2 - call $std/math/test_ceilf + f32.const 2 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18378,9 +18446,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1.0000152587890625 f32.const -1 - call $std/math/test_ceilf + f32.const -1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18390,9 +18459,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.9999923706054688 f32.const 1 - call $std/math/test_ceilf + f32.const 1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18402,9 +18472,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.9999923706054688 f32.const -0 - call $std/math/test_ceilf + f32.const -0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18414,9 +18485,10 @@ call $~lib/builtins/abort unreachable end - f32.const 7.888609052210118e-31 f32.const 1 - call $std/math/test_ceilf + f32.const 1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -18426,9 +18498,10 @@ call $~lib/builtins/abort unreachable end - f32.const -7.888609052210118e-31 f32.const -0 - call $std/math/test_ceilf + f32.const -0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -20332,9 +20405,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.cos f32.const -0.21126316487789154 f32.const 0.48328569531440735 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20345,9 +20419,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.cos f32.const -0.3589562177658081 f32.const 0.042505208402872086 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20358,9 +20433,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.cos f32.const -0.5033331513404846 f32.const -0.1386195719242096 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20371,9 +20447,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.cos f32.const 0.9692853689193726 f32.const 0.1786951720714569 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20384,9 +20461,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.cos f32.const -0.9875878691673279 f32.const 0.1389600932598114 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20397,9 +20475,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.cos f32.const 0.7887731194496155 f32.const 0.2989593744277954 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20410,9 +20489,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.cos f32.const 0.918469250202179 f32.const 0.24250665307044983 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20423,9 +20503,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.cos f32.const 0.8463190197944641 f32.const -0.24033240973949432 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20436,9 +20517,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.cos f32.const 0.7150139212608337 f32.const -0.3372635245323181 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20449,9 +20531,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.cos f32.const 0.7783495187759399 f32.const 0.16550153493881226 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20462,9 +20545,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20475,9 +20559,10 @@ unreachable end f32.const -0 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20488,9 +20573,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.cos f32.const nan:0x400000 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20501,9 +20587,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.cos f32.const nan:0x400000 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20514,9 +20601,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.cos f32.const nan:0x400000 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20527,9 +20615,10 @@ unreachable end f32.const 1.862645149230957e-09 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 1.4551915228366852e-11 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20540,9 +20629,10 @@ unreachable end f32.const -1.862645149230957e-09 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 1.4551915228366852e-11 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20553,9 +20643,10 @@ unreachable end f32.const 1.1754943508222875e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20566,9 +20657,10 @@ unreachable end f32.const -1.1754943508222875e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20579,9 +20671,10 @@ unreachable end f32.const 1.401298464324817e-45 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20592,9 +20685,10 @@ unreachable end f32.const -1.401298464324817e-45 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20605,9 +20699,10 @@ unreachable end f32.const 2.802596928649634e-45 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20618,9 +20713,10 @@ unreachable end f32.const 1.2611686178923354e-44 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20631,9 +20727,10 @@ unreachable end f32.const 2.938735877055719e-39 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20644,9 +20741,10 @@ unreachable end f32.const 5.877471754111438e-39 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20657,9 +20755,10 @@ unreachable end f32.const 1.1754940705625946e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20670,9 +20769,10 @@ unreachable end f32.const 1.1754942106924411e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20683,9 +20783,10 @@ unreachable end f32.const 1.175494490952134e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20696,9 +20797,10 @@ unreachable end f32.const 1.1754946310819804e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20709,9 +20811,10 @@ unreachable end f32.const 2.3509880009953429e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20722,9 +20825,10 @@ unreachable end f32.const 2.350988701644575e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20735,9 +20839,10 @@ unreachable end f32.const 2.3509895424236536e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20748,9 +20853,10 @@ unreachable end f32.const 4.70197740328915e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20761,9 +20867,10 @@ unreachable end f32.const 7.450580596923828e-09 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 2.3283064365386963e-10 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20774,9 +20881,10 @@ unreachable end f32.const 0.000244140625 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0.25 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20787,9 +20895,10 @@ unreachable end f32.const 0.00048828125 + call $~lib/math/NativeMathf.cos f32.const 0.9999998807907104 f32.const -3.973643103449831e-08 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20800,9 +20909,10 @@ unreachable end f32.const 0.0009765625 + call $~lib/math/NativeMathf.cos f32.const 0.9999995231628418 f32.const -6.357828397085541e-07 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20813,9 +20923,10 @@ unreachable end f32.const -2.802596928649634e-45 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20826,9 +20937,10 @@ unreachable end f32.const -1.2611686178923354e-44 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20839,9 +20951,10 @@ unreachable end f32.const -2.938735877055719e-39 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20852,9 +20965,10 @@ unreachable end f32.const -5.877471754111438e-39 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20865,9 +20979,10 @@ unreachable end f32.const -1.1754940705625946e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20878,9 +20993,10 @@ unreachable end f32.const -1.1754942106924411e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20891,9 +21007,10 @@ unreachable end f32.const -1.175494490952134e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20904,9 +21021,10 @@ unreachable end f32.const -1.1754946310819804e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20917,9 +21035,10 @@ unreachable end f32.const -2.3509880009953429e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20930,9 +21049,10 @@ unreachable end f32.const -2.350988701644575e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20943,9 +21063,10 @@ unreachable end f32.const -2.3509895424236536e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20956,9 +21077,10 @@ unreachable end f32.const -4.70197740328915e-38 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20969,9 +21091,10 @@ unreachable end f32.const -7.450580596923828e-09 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 2.3283064365386963e-10 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20982,9 +21105,10 @@ unreachable end f32.const -0.000244140625 + call $~lib/math/NativeMathf.cos f32.const 1 f32.const 0.25 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -20995,9 +21119,10 @@ unreachable end f32.const -0.00048828125 + call $~lib/math/NativeMathf.cos f32.const 0.9999998807907104 f32.const -3.973643103449831e-08 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -21008,9 +21133,10 @@ unreachable end f32.const -0.0009765625 + call $~lib/math/NativeMathf.cos f32.const 0.9999995231628418 f32.const -6.357828397085541e-07 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -21021,9 +21147,10 @@ unreachable end f32.const 255.99993896484375 + call $~lib/math/NativeMathf.cos f32.const -0.03985174745321274 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -21034,9 +21161,10 @@ unreachable end f32.const 5033165 + call $~lib/math/NativeMathf.cos f32.const 0.8471871614456177 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -21047,9 +21175,10 @@ unreachable end f32.const 421657440 + call $~lib/math/NativeMathf.cos f32.const 0.6728929281234741 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -21060,9 +21189,10 @@ unreachable end f32.const 2147483392 + call $~lib/math/NativeMathf.cos f32.const 0.9610780477523804 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -21073,9 +21203,10 @@ unreachable end f32.const 68719476736 + call $~lib/math/NativeMathf.cos f32.const 0.1694190502166748 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -21086,9 +21217,10 @@ unreachable end f32.const 549755813888 + call $~lib/math/NativeMathf.cos f32.const 0.20735950767993927 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -21099,9 +21231,10 @@ unreachable end f32.const 3402823466385288598117041e14 + call $~lib/math/NativeMathf.cos f32.const 0.8530210256576538 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -21112,9 +21245,10 @@ unreachable end f32.const -255.99993896484375 + call $~lib/math/NativeMathf.cos f32.const -0.03985174745321274 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -21125,9 +21259,10 @@ unreachable end f32.const -5033165 + call $~lib/math/NativeMathf.cos f32.const 0.8471871614456177 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -21138,9 +21273,10 @@ unreachable end f32.const -421657440 + call $~lib/math/NativeMathf.cos f32.const 0.6728929281234741 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -21151,9 +21287,10 @@ unreachable end f32.const -2147483392 + call $~lib/math/NativeMathf.cos f32.const 0.9610780477523804 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -21164,9 +21301,10 @@ unreachable end f32.const -68719476736 + call $~lib/math/NativeMathf.cos f32.const 0.1694190502166748 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -21177,9 +21315,10 @@ unreachable end f32.const -549755813888 + call $~lib/math/NativeMathf.cos f32.const 0.20735950767993927 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -21190,9 +21329,10 @@ unreachable end f32.const -3402823466385288598117041e14 + call $~lib/math/NativeMathf.cos f32.const 0.8530210256576538 f32.const 0 - call $std/math/test_cosf + call $std/math/check i32.eqz if i32.const 0 @@ -22152,9 +22292,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.exp f32.const 3.1377049162983894e-04 f32.const -0.030193336308002472 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22165,9 +22306,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.exp f32.const 77.11051177978516 f32.const -0.2875460684299469 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22178,9 +22320,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.exp f32.const 2.2908132814336568e-04 f32.const 0.2237040400505066 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22191,9 +22334,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.exp f32.const 1.4565663877874613e-03 f32.const 0.36469703912734985 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22204,9 +22348,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.exp f32.const 10583.5634765625 f32.const 0.45962104201316833 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22217,9 +22362,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.exp f32.const 1.93863844871521 f32.const 0.3568260967731476 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22230,9 +22376,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.exp f32.const 0.6659078598022461 f32.const -0.38294991850852966 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22243,9 +22390,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.exp f32.const 1.753756046295166 f32.const 0.44355490803718567 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22256,9 +22404,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.exp f32.const 2.168752908706665 f32.const 0.24562469124794006 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22269,9 +22418,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.exp f32.const 0.5072436928749084 f32.const -0.3974292278289795 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22282,9 +22432,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.exp f32.const 1 f32.const 0 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22295,9 +22446,10 @@ unreachable end f32.const -0 + call $~lib/math/NativeMathf.exp f32.const 1 f32.const 0 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22308,9 +22460,10 @@ unreachable end f32.const 1 + call $~lib/math/NativeMathf.exp f32.const 2.7182817459106445 f32.const -0.3462330996990204 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22321,9 +22474,10 @@ unreachable end f32.const -1 + call $~lib/math/NativeMathf.exp f32.const 0.3678794503211975 f32.const 0.3070148527622223 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22334,9 +22488,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.exp f32.const inf f32.const 0 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22347,9 +22502,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.exp f32.const 0 f32.const 0 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22360,9 +22516,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.exp f32.const nan:0x400000 f32.const 0 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22373,9 +22530,10 @@ unreachable end f32.const 88.72283172607422 + call $~lib/math/NativeMathf.exp f32.const 340279851902147610656242e15 f32.const -0.09067153930664062 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22386,9 +22544,10 @@ unreachable end f32.const 88.72283935546875 + call $~lib/math/NativeMathf.exp f32.const inf f32.const 0 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22399,9 +22558,10 @@ unreachable end f32.const -103.97207641601562 + call $~lib/math/NativeMathf.exp f32.const 1.401298464324817e-45 f32.const 0.49999967217445374 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22412,9 +22572,10 @@ unreachable end f32.const -103.97208404541016 + call $~lib/math/NativeMathf.exp f32.const 0 f32.const -0.49999651312828064 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22425,9 +22586,10 @@ unreachable end f32.const 0.3465735614299774 + call $~lib/math/NativeMathf.exp f32.const 1.4142135381698608 f32.const 0.13922421634197235 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22438,9 +22600,10 @@ unreachable end f32.const 0.3465735912322998 + call $~lib/math/NativeMathf.exp f32.const 1.4142135381698608 f32.const -0.21432916820049286 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22451,9 +22614,10 @@ unreachable end f32.const 0.3465736210346222 + call $~lib/math/NativeMathf.exp f32.const 1.4142136573791504 f32.const 0.43211743235588074 - call $std/math/test_expf + call $std/math/check i32.eqz if i32.const 0 @@ -22711,9 +22875,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.expm1 f32.const -0.9996862411499023 f32.const -0.19532723724842072 - call $std/math/test_expm1f + call $std/math/check i32.eqz if i32.const 0 @@ -22724,9 +22889,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.expm1 f32.const 76.11051177978516 f32.const -0.2875460684299469 - call $std/math/test_expm1f + call $std/math/check i32.eqz if i32.const 0 @@ -22737,9 +22903,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.expm1 f32.const -0.9997709393501282 f32.const -0.34686920046806335 - call $std/math/test_expm1f + call $std/math/check i32.eqz if i32.const 0 @@ -22750,9 +22917,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.expm1 f32.const -0.9985434412956238 f32.const -0.1281939446926117 - call $std/math/test_expm1f + call $std/math/check i32.eqz if i32.const 0 @@ -22763,9 +22931,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.expm1 f32.const 10582.5634765625 f32.const 0.45962104201316833 - call $std/math/test_expm1f + call $std/math/check i32.eqz if i32.const 0 @@ -22776,9 +22945,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.expm1 f32.const 0.9386383891105652 f32.const -0.28634780645370483 - call $std/math/test_expm1f + call $std/math/check i32.eqz if i32.const 0 @@ -22789,9 +22959,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.expm1 f32.const -0.3340921103954315 f32.const 0.23410017788410187 - call $std/math/test_expm1f + call $std/math/check i32.eqz if i32.const 0 @@ -22802,9 +22973,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.expm1 f32.const 0.7537559866905212 f32.const -0.11289017647504807 - call $std/math/test_expm1f + call $std/math/check i32.eqz if i32.const 0 @@ -22815,9 +22987,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.expm1 f32.const 1.168752908706665 f32.const 0.4912493824958801 - call $std/math/test_expm1f + call $std/math/check i32.eqz if i32.const 0 @@ -22828,9 +23001,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.expm1 f32.const -0.49275627732276917 f32.const 0.20514154434204102 - call $std/math/test_expm1f + call $std/math/check i32.eqz if i32.const 0 @@ -22841,9 +23015,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.expm1 f32.const 0 f32.const 0 - call $std/math/test_expm1f + call $std/math/check i32.eqz if i32.const 0 @@ -22854,9 +23029,10 @@ unreachable end f32.const -0 + call $~lib/math/NativeMathf.expm1 f32.const -0 f32.const 0 - call $std/math/test_expm1f + call $std/math/check i32.eqz if i32.const 0 @@ -22867,9 +23043,10 @@ unreachable end f32.const 1 + call $~lib/math/NativeMathf.expm1 f32.const 1.718281865119934 f32.const 0.3075338304042816 - call $std/math/test_expm1f + call $std/math/check i32.eqz if i32.const 0 @@ -22880,9 +23057,10 @@ unreachable end f32.const -1 + call $~lib/math/NativeMathf.expm1 f32.const -0.6321205496788025 f32.const 0.15350742638111115 - call $std/math/test_expm1f + call $std/math/check i32.eqz if i32.const 0 @@ -22893,9 +23071,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.expm1 f32.const inf f32.const 0 - call $std/math/test_expm1f + call $std/math/check i32.eqz if i32.const 0 @@ -22906,9 +23085,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.expm1 f32.const -1 f32.const 0 - call $std/math/test_expm1f + call $std/math/check i32.eqz if i32.const 0 @@ -22919,9 +23099,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.expm1 f32.const nan:0x400000 f32.const 0 - call $std/math/test_expm1f + call $std/math/check i32.eqz if i32.const 0 @@ -23387,9 +23568,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.exp2 f32.const 3.7293792702257633e-03 f32.const -0.0674908235669136 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -23400,9 +23582,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.exp2 f32.const 20.32579231262207 f32.const 0.34121403098106384 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -23413,9 +23596,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.exp2 f32.const 2.9987283051013947e-03 f32.const 0.15504619479179382 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -23426,9 +23610,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.exp2 f32.const 0.010808623395860195 f32.const 0.2603940963745117 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -23439,9 +23624,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.exp2 f32.const 616.1156616210938 f32.const -0.1379322111606598 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -23452,9 +23638,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.exp2 f32.const 1.5822590589523315 f32.const -0.427890807390213 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -23465,9 +23652,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.exp2 f32.const 0.7543970942497253 f32.const -0.38062313199043274 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -23478,9 +23666,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.exp2 f32.const 1.4760686159133911 f32.const 0.1507442593574524 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -23491,9 +23680,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.exp2 f32.const 1.7101848125457764 f32.const -0.39102980494499207 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -23504,9 +23694,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.exp2 f32.const 0.6247003674507141 f32.const -0.20904375612735748 - call $std/math/test_exp2f + call $std/math/check i32.eqz if i32.const 0 @@ -23816,9 +24007,10 @@ call $~lib/builtins/abort unreachable end - f32.const -8.066848754882812 f32.const -9 - call $std/math/test_floorf + f32.const -9 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -23828,9 +24020,10 @@ call $~lib/builtins/abort unreachable end - f32.const 4.345239639282227 f32.const 4 - call $std/math/test_floorf + f32.const 4 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -23840,9 +24033,10 @@ call $~lib/builtins/abort unreachable end - f32.const -8.381433486938477 f32.const -9 - call $std/math/test_floorf + f32.const -9 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -23852,9 +24046,10 @@ call $~lib/builtins/abort unreachable end - f32.const -6.531673431396484 f32.const -7 - call $std/math/test_floorf + f32.const -7 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -23864,9 +24059,10 @@ call $~lib/builtins/abort unreachable end - f32.const 9.267057418823242 f32.const 9 - call $std/math/test_floorf + f32.const 9 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -23876,9 +24072,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.6619858741760254 f32.const 0 - call $std/math/test_floorf + f32.const 0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -23888,9 +24085,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.40660393238067627 f32.const -1 - call $std/math/test_floorf + f32.const -1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -23900,9 +24098,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.5617597699165344 f32.const 0 - call $std/math/test_floorf + f32.const 0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -23912,9 +24111,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.7741522789001465 f32.const 0 - call $std/math/test_floorf + f32.const 0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -23924,9 +24124,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.6787636876106262 f32.const -1 - call $std/math/test_floorf + f32.const -1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -23938,7 +24139,8 @@ end f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_floorf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -23950,7 +24152,8 @@ end f32.const inf f32.const inf - call $std/math/test_floorf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -23962,7 +24165,8 @@ end f32.const -inf f32.const -inf - call $std/math/test_floorf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -23974,7 +24178,8 @@ end f32.const 0 f32.const 0 - call $std/math/test_floorf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -23986,7 +24191,8 @@ end f32.const -0 f32.const -0 - call $std/math/test_floorf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -23998,7 +24204,8 @@ end f32.const 1 f32.const 1 - call $std/math/test_floorf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -24010,7 +24217,8 @@ end f32.const -1 f32.const -1 - call $std/math/test_floorf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -24020,9 +24228,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.5 f32.const 0 - call $std/math/test_floorf + f32.const 0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -24032,9 +24241,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.5 f32.const -1 - call $std/math/test_floorf + f32.const -1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -24044,9 +24254,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1.0000152587890625 f32.const 1 - call $std/math/test_floorf + f32.const 1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -24056,9 +24267,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1.0000152587890625 f32.const -2 - call $std/math/test_floorf + f32.const -2 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -24068,9 +24280,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.9999923706054688 f32.const 0 - call $std/math/test_floorf + f32.const 0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -24080,9 +24293,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.9999923706054688 f32.const -1 - call $std/math/test_floorf + f32.const -1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -24092,9 +24306,10 @@ call $~lib/builtins/abort unreachable end - f32.const 7.888609052210118e-31 f32.const 0 - call $std/math/test_floorf + f32.const 0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -24104,9 +24319,10 @@ call $~lib/builtins/abort unreachable end - f32.const -7.888609052210118e-31 f32.const -1 - call $std/math/test_floorf + f32.const -1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -24118,9 +24334,10 @@ end f64.const -8.06684839057968 f64.const 4.535662560676869 + call $~lib/math/NativeMath.hypot f64.const 9.25452742288464 f64.const -0.31188681721687317 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24132,9 +24349,10 @@ end f64.const 4.345239849338305 f64.const -8.88799136300345 + call $~lib/math/NativeMath.hypot f64.const 9.893305808328252 f64.const 0.4593673348426819 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24146,9 +24364,10 @@ end f64.const -8.38143342755525 f64.const -2.763607337379588 + call $~lib/math/NativeMath.hypot f64.const 8.825301797432132 f64.const -0.1701754331588745 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24160,9 +24379,10 @@ end f64.const -6.531673581913484 f64.const 4.567535276842744 + call $~lib/math/NativeMath.hypot f64.const 7.970265885519092 f64.const -0.3176782727241516 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24174,9 +24394,10 @@ end f64.const 9.267056966972586 f64.const 4.811392084359796 + call $~lib/math/NativeMath.hypot f64.const 10.441639651824575 f64.const -0.2693633437156677 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24188,9 +24409,10 @@ end f64.const -6.450045556060236 f64.const 0.6620717923376739 + call $~lib/math/NativeMath.hypot f64.const 6.483936052542593 f64.const 0.35618898272514343 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24202,9 +24424,10 @@ end f64.const 7.858890253041697 f64.const 0.05215452675006225 + call $~lib/math/NativeMath.hypot f64.const 7.859063309581766 f64.const 0.08044655621051788 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24216,9 +24439,10 @@ end f64.const -0.792054511984896 f64.const 7.67640268511754 + call $~lib/math/NativeMath.hypot f64.const 7.717156764899584 f64.const 0.05178084969520569 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24230,9 +24454,10 @@ end f64.const 0.615702673197924 f64.const 2.0119025790324803 + call $~lib/math/NativeMath.hypot f64.const 2.104006123874314 f64.const -0.0918039008975029 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24244,9 +24469,10 @@ end f64.const -0.5587586823609152 f64.const 0.03223983060263804 + call $~lib/math/NativeMath.hypot f64.const 0.5596880129062913 f64.const 0.1383407711982727 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24258,9 +24484,10 @@ end f64.const 3 f64.const 4 + call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24272,9 +24499,10 @@ end f64.const -3 f64.const 4 + call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24286,9 +24514,10 @@ end f64.const 4 f64.const 3 + call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24300,9 +24529,10 @@ end f64.const 4 f64.const -3 + call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24314,9 +24544,10 @@ end f64.const -3 f64.const -4 + call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24328,9 +24559,10 @@ end f64.const 1797693134862315708145274e284 f64.const 0 + call $~lib/math/NativeMath.hypot f64.const 1797693134862315708145274e284 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24342,9 +24574,10 @@ end f64.const 1797693134862315708145274e284 f64.const -0 + call $~lib/math/NativeMath.hypot f64.const 1797693134862315708145274e284 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24356,9 +24589,10 @@ end f64.const 5e-324 f64.const 0 + call $~lib/math/NativeMath.hypot f64.const 5e-324 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24370,9 +24604,10 @@ end f64.const 5e-324 f64.const -0 + call $~lib/math/NativeMath.hypot f64.const 5e-324 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24384,9 +24619,10 @@ end f64.const inf f64.const 1 + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24398,9 +24634,10 @@ end f64.const 1 f64.const inf + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24412,9 +24649,10 @@ end f64.const inf f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24426,9 +24664,10 @@ end f64.const nan:0x8000000000000 f64.const inf + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24440,9 +24679,10 @@ end f64.const -inf f64.const 1 + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24454,9 +24694,10 @@ end f64.const 1 f64.const -inf + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24468,9 +24709,10 @@ end f64.const -inf f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24482,9 +24724,10 @@ end f64.const nan:0x8000000000000 f64.const -inf + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24496,9 +24739,10 @@ end f64.const nan:0x8000000000000 f64.const 1 + call $~lib/math/NativeMath.hypot f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24510,9 +24754,10 @@ end f64.const 1 f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.hypot f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24524,9 +24769,10 @@ end f64.const nan:0x8000000000000 f64.const 0 + call $~lib/math/NativeMath.hypot f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24538,9 +24784,10 @@ end f64.const 0 f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.hypot f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -24552,9 +24799,10 @@ end f32.const -8.066848754882812 f32.const 4.535662651062012 + call $~lib/math/NativeMathf.hypot f32.const 9.254528045654297 f32.const 0.2735958993434906 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24566,9 +24814,10 @@ end f32.const 4.345239639282227 f32.const -8.887990951538086 + call $~lib/math/NativeMathf.hypot f32.const 9.893305778503418 f32.const 0.4530770778656006 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24580,9 +24829,10 @@ end f32.const -8.381433486938477 f32.const -2.7636072635650635 + call $~lib/math/NativeMathf.hypot f32.const 8.825302124023438 f32.const 0.30755728483200073 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24594,9 +24844,10 @@ end f32.const -6.531673431396484 f32.const 4.567535400390625 + call $~lib/math/NativeMathf.hypot f32.const 7.970265865325928 f32.const 0.06785223633050919 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24608,9 +24859,10 @@ end f32.const 9.267057418823242 f32.const 4.811392307281494 + call $~lib/math/NativeMathf.hypot f32.const 10.44163990020752 f32.const -0.26776307821273804 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24622,9 +24874,10 @@ end f32.const -6.450045585632324 f32.const 0.6620717644691467 + call $~lib/math/NativeMathf.hypot f32.const 6.483936309814453 f32.const 0.48381292819976807 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24636,9 +24889,10 @@ end f32.const 7.858890056610107 f32.const 0.052154526114463806 + call $~lib/math/NativeMathf.hypot f32.const 7.859063148498535 f32.const 0.07413065433502197 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24650,9 +24904,10 @@ end f32.const -0.7920545339584351 f32.const 7.676402568817139 + call $~lib/math/NativeMathf.hypot f32.const 7.717156887054443 f32.const 0.4940592646598816 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24664,9 +24919,10 @@ end f32.const 0.6157026886940002 f32.const 2.0119025707244873 + call $~lib/math/NativeMathf.hypot f32.const 2.104006052017212 f32.const -0.287089467048645 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24678,9 +24934,10 @@ end f32.const -0.5587586760520935 f32.const 0.03223983198404312 + call $~lib/math/NativeMathf.hypot f32.const 0.5596880316734314 f32.const 0.4191940724849701 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24692,9 +24949,10 @@ end f32.const 3 f32.const 4 + call $~lib/math/NativeMathf.hypot f32.const 5 f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24706,9 +24964,10 @@ end f32.const -3 f32.const 4 + call $~lib/math/NativeMathf.hypot f32.const 5 f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24720,9 +24979,10 @@ end f32.const 4 f32.const 3 + call $~lib/math/NativeMathf.hypot f32.const 5 f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24734,9 +24994,10 @@ end f32.const 4 f32.const -3 + call $~lib/math/NativeMathf.hypot f32.const 5 f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24748,9 +25009,10 @@ end f32.const -3 f32.const -4 + call $~lib/math/NativeMathf.hypot f32.const 5 f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24762,9 +25024,10 @@ end f32.const 3402823466385288598117041e14 f32.const 0 + call $~lib/math/NativeMathf.hypot f32.const 3402823466385288598117041e14 f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24776,9 +25039,10 @@ end f32.const 3402823466385288598117041e14 f32.const -0 + call $~lib/math/NativeMathf.hypot f32.const 3402823466385288598117041e14 f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24790,9 +25054,10 @@ end f32.const 1.401298464324817e-45 f32.const 0 + call $~lib/math/NativeMathf.hypot f32.const 1.401298464324817e-45 f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24804,9 +25069,10 @@ end f32.const 1.401298464324817e-45 f32.const -0 + call $~lib/math/NativeMathf.hypot f32.const 1.401298464324817e-45 f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24818,9 +25084,10 @@ end f32.const inf f32.const 1 + call $~lib/math/NativeMathf.hypot f32.const inf f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24832,9 +25099,10 @@ end f32.const 1 f32.const inf + call $~lib/math/NativeMathf.hypot f32.const inf f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24846,9 +25114,10 @@ end f32.const inf f32.const nan:0x400000 + call $~lib/math/NativeMathf.hypot f32.const inf f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24860,9 +25129,10 @@ end f32.const nan:0x400000 f32.const inf + call $~lib/math/NativeMathf.hypot f32.const inf f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24874,9 +25144,10 @@ end f32.const -inf f32.const 1 + call $~lib/math/NativeMathf.hypot f32.const inf f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24888,9 +25159,10 @@ end f32.const 1 f32.const -inf + call $~lib/math/NativeMathf.hypot f32.const inf f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24902,9 +25174,10 @@ end f32.const -inf f32.const nan:0x400000 + call $~lib/math/NativeMathf.hypot f32.const inf f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24916,9 +25189,10 @@ end f32.const nan:0x400000 f32.const -inf + call $~lib/math/NativeMathf.hypot f32.const inf f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24930,9 +25204,10 @@ end f32.const nan:0x400000 f32.const 1 + call $~lib/math/NativeMathf.hypot f32.const nan:0x400000 f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -24944,9 +25219,10 @@ end f32.const 1 f32.const nan:0x400000 + call $~lib/math/NativeMathf.hypot f32.const nan:0x400000 f32.const 0 - call $std/math/test_hypotf + call $std/math/check i32.eqz if i32.const 0 @@ -25191,8 +25467,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.log f32.const -inf - call $std/math/test_logf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -25203,8 +25481,10 @@ unreachable end f32.const -0 + call $~lib/math/NativeMathf.log f32.const -inf - call $std/math/test_logf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -25215,8 +25495,10 @@ unreachable end f32.const -7.888609052210118e-31 + call $~lib/math/NativeMathf.log f32.const nan:0x400000 - call $std/math/test_logf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -25227,8 +25509,10 @@ unreachable end f32.const 1 + call $~lib/math/NativeMathf.log + f32.const 0 f32.const 0 - call $std/math/test_logf + call $std/math/check i32.eqz if i32.const 0 @@ -25239,8 +25523,10 @@ unreachable end f32.const -1 + call $~lib/math/NativeMathf.log f32.const nan:0x400000 - call $std/math/test_logf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -25251,8 +25537,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.log f32.const inf - call $std/math/test_logf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -25263,8 +25551,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.log f32.const nan:0x400000 - call $std/math/test_logf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -25275,8 +25565,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.log f32.const nan:0x400000 - call $std/math/test_logf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -25287,8 +25579,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.log f32.const -inf - call $std/math/test_logf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -25299,8 +25593,10 @@ unreachable end f32.const -0 + call $~lib/math/NativeMathf.log f32.const -inf - call $std/math/test_logf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -25311,8 +25607,10 @@ unreachable end f32.const -7.888609052210118e-31 + call $~lib/math/NativeMathf.log f32.const nan:0x400000 - call $std/math/test_logf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -25323,8 +25621,10 @@ unreachable end f32.const 1 + call $~lib/math/NativeMathf.log f32.const 0 - call $std/math/test_logf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -25335,8 +25635,10 @@ unreachable end f32.const -1 + call $~lib/math/NativeMathf.log f32.const nan:0x400000 - call $std/math/test_logf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -25347,8 +25649,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.log f32.const inf - call $std/math/test_logf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -25359,8 +25663,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.log f32.const nan:0x400000 - call $std/math/test_logf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -25371,8 +25677,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.log f32.const nan:0x400000 - call $std/math/test_logf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -25617,9 +25925,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -25630,9 +25939,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.log10 f32.const 0.6380137205123901 f32.const -0.20476758480072021 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -25643,9 +25953,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -25656,9 +25967,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -25669,9 +25981,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.log10 f32.const 0.9669418334960938 f32.const -0.34273025393486023 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -25682,9 +25995,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.log10 f32.const -0.1791512817144394 f32.const -0.27078554034233093 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -25695,9 +26009,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -25708,9 +26023,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.log10 f32.const -0.25044935941696167 f32.const 0.2126826047897339 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -25721,9 +26037,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.log10 f32.const -0.1111735999584198 f32.const 0.46515095233917236 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -25734,9 +26051,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -25747,9 +26065,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.log10 f32.const -inf f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -25760,9 +26079,10 @@ unreachable end f32.const -0 + call $~lib/math/NativeMathf.log10 f32.const -inf f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -25773,9 +26093,10 @@ unreachable end f32.const -7.888609052210118e-31 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -25786,9 +26107,10 @@ unreachable end f32.const 1 + call $~lib/math/NativeMathf.log10 f32.const 0 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -25799,9 +26121,10 @@ unreachable end f32.const -1 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -25812,9 +26135,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.log10 f32.const inf f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -25825,9 +26149,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -25838,9 +26163,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -26085,9 +26411,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.log1p f32.const nan:0x400000 f32.const 0 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26098,9 +26425,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.log1p f32.const 1.676206350326538 f32.const -0.23014859855175018 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26111,9 +26439,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.log1p f32.const nan:0x400000 f32.const 0 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26124,9 +26453,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.log1p f32.const nan:0x400000 f32.const 0 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26137,9 +26467,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.log1p f32.const 2.3289403915405273 f32.const -0.29075589776039124 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26150,9 +26481,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.log1p f32.const 0.5080131888389587 f32.const -0.1386766880750656 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26163,9 +26495,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.log1p f32.const -0.5218932032585144 f32.const -0.08804433047771454 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26176,9 +26509,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.log1p f32.const 0.44581323862075806 f32.const -0.15101368725299835 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26189,9 +26523,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.log1p f32.const 0.5733227133750916 f32.const -0.10264533013105392 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26202,9 +26537,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.log1p f32.const -1.1355782747268677 f32.const -0.19879481196403503 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26215,9 +26551,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.log1p f32.const 0 f32.const 0 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26228,9 +26565,10 @@ unreachable end f32.const -0 + call $~lib/math/NativeMathf.log1p f32.const -0 f32.const 0 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26241,9 +26579,10 @@ unreachable end f32.const -7.888609052210118e-31 + call $~lib/math/NativeMathf.log1p f32.const -7.888609052210118e-31 f32.const 3.308722450212111e-24 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26254,9 +26593,10 @@ unreachable end f32.const 1 + call $~lib/math/NativeMathf.log1p f32.const 0.6931471824645996 f32.const 0.031954795122146606 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26267,9 +26607,10 @@ unreachable end f32.const -1 + call $~lib/math/NativeMathf.log1p f32.const -inf f32.const 0 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26280,9 +26621,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.log1p f32.const inf f32.const 0 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26293,9 +26635,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.log1p f32.const nan:0x400000 f32.const 0 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26306,9 +26649,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.log1p f32.const nan:0x400000 f32.const 0 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26319,9 +26663,10 @@ unreachable end f32.const -1.1754942106924411e-38 + call $~lib/math/NativeMathf.log1p f32.const -1.1754942106924411e-38 f32.const 4.930380657631324e-32 - call $std/math/test_log1pf + call $std/math/check i32.eqz if i32.const 0 @@ -26566,9 +26911,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.log2 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -26579,9 +26925,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.log2 f32.const 2.1194357872009277 f32.const 0.18271538615226746 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -26592,9 +26939,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.log2 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -26605,9 +26953,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.log2 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -26618,9 +26967,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.log2 f32.const 3.212111234664917 f32.const -0.3188050389289856 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -26631,9 +26981,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.log2 f32.const -0.5951276421546936 f32.const 0.34231460094451904 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -26644,9 +26995,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.log2 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -26657,9 +27009,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.log2 f32.const -0.8319748044013977 f32.const -0.33473604917526245 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -26670,9 +27023,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.log2 f32.const -0.3693107068538666 f32.const 0.3278401792049408 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -26683,9 +27037,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.log2 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -26696,9 +27051,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.log2 f32.const -inf f32.const 0 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -26709,9 +27065,10 @@ unreachable end f32.const -0 + call $~lib/math/NativeMathf.log2 f32.const -inf f32.const 0 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -26722,9 +27079,10 @@ unreachable end f32.const -7.888609052210118e-31 + call $~lib/math/NativeMathf.log2 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -26735,9 +27093,10 @@ unreachable end f32.const 1 + call $~lib/math/NativeMathf.log2 f32.const 0 f32.const 0 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -26748,9 +27107,10 @@ unreachable end f32.const -1 + call $~lib/math/NativeMathf.log2 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -26761,9 +27121,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.log2 f32.const inf f32.const 0 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -26774,9 +27135,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.log2 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -26787,9 +27149,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.log2 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log2f + call $std/math/check i32.eqz if i32.const 0 @@ -27683,10 +28046,10 @@ call $~lib/builtins/abort unreachable end - f32.const -8.066848754882812 f32.const 4.535662651062012 f32.const 4.535662651062012 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27697,9 +28060,9 @@ unreachable end f32.const 4.345239639282227 - f32.const -8.887990951538086 f32.const 4.345239639282227 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27709,10 +28072,10 @@ call $~lib/builtins/abort unreachable end - f32.const -8.381433486938477 f32.const -2.7636072635650635 f32.const -2.7636072635650635 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27722,10 +28085,10 @@ call $~lib/builtins/abort unreachable end - f32.const -6.531673431396484 f32.const 4.567535400390625 f32.const 4.567535400390625 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27736,9 +28099,9 @@ unreachable end f32.const 9.267057418823242 - f32.const 4.811392307281494 f32.const 9.267057418823242 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27748,10 +28111,10 @@ call $~lib/builtins/abort unreachable end - f32.const -6.450045585632324 f32.const 0.6620717644691467 f32.const 0.6620717644691467 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27762,9 +28125,9 @@ unreachable end f32.const 7.858890056610107 - f32.const 0.052154526114463806 f32.const 7.858890056610107 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27774,10 +28137,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.7920545339584351 f32.const 7.676402568817139 f32.const 7.676402568817139 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27787,10 +28150,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.6157026886940002 f32.const 2.0119025707244873 f32.const 2.0119025707244873 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27800,10 +28163,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.5587586760520935 f32.const 0.03223983198404312 f32.const 0.03223983198404312 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27813,10 +28176,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0 f32.const 1 f32.const 1 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27826,10 +28189,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0 f32.const 1 f32.const 1 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27839,10 +28202,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.5 f32.const 1 f32.const 1 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27852,10 +28215,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.5 f32.const 1 f32.const 1 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27867,8 +28230,8 @@ end f32.const 1 f32.const 1 - f32.const 1 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27878,10 +28241,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1 f32.const 1 f32.const 1 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27892,9 +28255,9 @@ unreachable end f32.const inf - f32.const 1 f32.const inf - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27904,10 +28267,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf f32.const 1 f32.const 1 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27918,9 +28281,9 @@ unreachable end f32.const nan:0x400000 - f32.const 1 f32.const nan:0x400000 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27931,9 +28294,9 @@ unreachable end f32.const 0 - f32.const -1 f32.const 0 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27944,9 +28307,9 @@ unreachable end f32.const -0 - f32.const -1 f32.const -0 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27957,9 +28320,9 @@ unreachable end f32.const 0.5 - f32.const -1 f32.const 0.5 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27970,9 +28333,9 @@ unreachable end f32.const -0.5 - f32.const -1 f32.const -0.5 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27983,9 +28346,9 @@ unreachable end f32.const 1 - f32.const -1 f32.const 1 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -27997,8 +28360,8 @@ end f32.const -1 f32.const -1 - f32.const -1 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28009,9 +28372,9 @@ unreachable end f32.const inf - f32.const -1 f32.const inf - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28021,10 +28384,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf f32.const -1 f32.const -1 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28035,9 +28398,9 @@ unreachable end f32.const nan:0x400000 - f32.const -1 f32.const nan:0x400000 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28050,7 +28413,7 @@ f32.const 0 f32.const 0 f32.const 0 - call $std/math/test_maxf + call $std/math/check i32.eqz if i32.const 0 @@ -28061,9 +28424,9 @@ unreachable end f32.const 0 - f32.const -0 f32.const 0 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28073,10 +28436,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0 f32.const inf f32.const inf - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28087,9 +28450,9 @@ unreachable end f32.const 0 - f32.const -inf f32.const 0 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28099,10 +28462,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0 f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28112,10 +28475,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0 f32.const 0 f32.const 0 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28127,8 +28490,8 @@ end f32.const -0 f32.const -0 - f32.const -0 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28138,10 +28501,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0 f32.const inf f32.const inf - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28152,9 +28515,9 @@ unreachable end f32.const -0 - f32.const -inf f32.const -0 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28164,10 +28527,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0 f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28178,9 +28541,9 @@ unreachable end f32.const 1 - f32.const 0 f32.const 1 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28190,10 +28553,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1 f32.const 0 f32.const 0 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28204,9 +28567,9 @@ unreachable end f32.const inf - f32.const 0 f32.const inf - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28216,10 +28579,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf f32.const 0 f32.const 0 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28230,9 +28593,9 @@ unreachable end f32.const nan:0x400000 - f32.const 0 f32.const nan:0x400000 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28242,10 +28605,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1 f32.const -0 f32.const -0 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28256,9 +28619,9 @@ unreachable end f32.const inf - f32.const -0 f32.const inf - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28268,10 +28631,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf f32.const -0 f32.const -0 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28282,9 +28645,9 @@ unreachable end f32.const nan:0x400000 - f32.const -0 f32.const nan:0x400000 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28295,9 +28658,9 @@ unreachable end f32.const inf - f32.const 2 f32.const inf - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28308,9 +28671,9 @@ unreachable end f32.const inf - f32.const -0.5 f32.const inf - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28320,10 +28683,10 @@ call $~lib/builtins/abort unreachable end - f32.const inf f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28333,10 +28696,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf f32.const 2 f32.const 2 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28346,10 +28709,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf f32.const -0.5 f32.const -0.5 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28359,10 +28722,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28374,8 +28737,8 @@ end f32.const nan:0x400000 f32.const nan:0x400000 - f32.const nan:0x400000 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28385,10 +28748,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1 f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28398,10 +28761,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1 f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28411,10 +28774,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1 f32.const inf f32.const inf - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28424,10 +28787,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1 f32.const inf f32.const inf - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28439,8 +28802,8 @@ end f32.const inf f32.const inf - f32.const inf - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28450,10 +28813,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf f32.const inf f32.const inf - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28464,9 +28827,9 @@ unreachable end f32.const 1 - f32.const -inf f32.const 1 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28477,9 +28840,9 @@ unreachable end f32.const -1 - f32.const -inf f32.const -1 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28490,9 +28853,9 @@ unreachable end f32.const inf - f32.const -inf f32.const inf - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28504,8 +28867,8 @@ end f32.const -inf f32.const -inf - f32.const -inf - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28516,9 +28879,9 @@ unreachable end f32.const 1.75 - f32.const 0.5 f32.const 1.75 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28528,10 +28891,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1.75 f32.const 0.5 f32.const 0.5 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28542,9 +28905,9 @@ unreachable end f32.const 1.75 - f32.const -0.5 f32.const 1.75 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -28554,10 +28917,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1.75 f32.const -0.5 f32.const -0.5 - call $std/math/test_maxf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29452,9 +29815,9 @@ unreachable end f32.const -8.066848754882812 - f32.const 4.535662651062012 f32.const -8.066848754882812 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29464,10 +29827,10 @@ call $~lib/builtins/abort unreachable end - f32.const 4.345239639282227 f32.const -8.887990951538086 f32.const -8.887990951538086 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29478,9 +29841,9 @@ unreachable end f32.const -8.381433486938477 - f32.const -2.7636072635650635 f32.const -8.381433486938477 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29491,9 +29854,9 @@ unreachable end f32.const -6.531673431396484 - f32.const 4.567535400390625 f32.const -6.531673431396484 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29503,10 +29866,10 @@ call $~lib/builtins/abort unreachable end - f32.const 9.267057418823242 f32.const 4.811392307281494 f32.const 4.811392307281494 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29517,9 +29880,9 @@ unreachable end f32.const -6.450045585632324 - f32.const 0.6620717644691467 f32.const -6.450045585632324 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29529,10 +29892,10 @@ call $~lib/builtins/abort unreachable end - f32.const 7.858890056610107 f32.const 0.052154526114463806 f32.const 0.052154526114463806 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29543,9 +29906,9 @@ unreachable end f32.const -0.7920545339584351 - f32.const 7.676402568817139 f32.const -0.7920545339584351 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29556,9 +29919,9 @@ unreachable end f32.const 0.6157026886940002 - f32.const 2.0119025707244873 f32.const 0.6157026886940002 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29569,9 +29932,9 @@ unreachable end f32.const -0.5587586760520935 - f32.const 0.03223983198404312 f32.const -0.5587586760520935 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29582,9 +29945,9 @@ unreachable end f32.const 0 - f32.const 1 f32.const 0 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29595,9 +29958,9 @@ unreachable end f32.const -0 - f32.const 1 f32.const -0 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29608,9 +29971,9 @@ unreachable end f32.const 0.5 - f32.const 1 f32.const 0.5 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29621,9 +29984,9 @@ unreachable end f32.const -0.5 - f32.const 1 f32.const -0.5 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29635,8 +29998,8 @@ end f32.const 1 f32.const 1 - f32.const 1 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29647,9 +30010,9 @@ unreachable end f32.const -1 - f32.const 1 f32.const -1 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29659,10 +30022,10 @@ call $~lib/builtins/abort unreachable end - f32.const inf f32.const 1 f32.const 1 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29673,9 +30036,9 @@ unreachable end f32.const -inf - f32.const 1 f32.const -inf - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29686,9 +30049,9 @@ unreachable end f32.const nan:0x400000 - f32.const 1 f32.const nan:0x400000 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29698,10 +30061,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0 f32.const -1 f32.const -1 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29711,10 +30074,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0 f32.const -1 f32.const -1 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29724,10 +30087,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.5 f32.const -1 f32.const -1 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29737,10 +30100,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.5 f32.const -1 f32.const -1 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29750,10 +30113,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1 f32.const -1 f32.const -1 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29765,8 +30128,8 @@ end f32.const -1 f32.const -1 - f32.const -1 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29776,10 +30139,10 @@ call $~lib/builtins/abort unreachable end - f32.const inf f32.const -1 f32.const -1 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29790,9 +30153,9 @@ unreachable end f32.const -inf - f32.const -1 f32.const -inf - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29803,9 +30166,9 @@ unreachable end f32.const nan:0x400000 - f32.const -1 f32.const nan:0x400000 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29818,7 +30181,7 @@ f32.const 0 f32.const 0 f32.const 0 - call $std/math/test_minf + call $std/math/check i32.eqz if i32.const 0 @@ -29828,10 +30191,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0 f32.const -0 f32.const -0 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29842,9 +30205,9 @@ unreachable end f32.const 0 - f32.const inf f32.const 0 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29854,10 +30217,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0 f32.const -inf f32.const -inf - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29867,10 +30230,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0 f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29881,9 +30244,9 @@ unreachable end f32.const -0 - f32.const 0 f32.const -0 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29895,8 +30258,8 @@ end f32.const -0 f32.const -0 - f32.const -0 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29907,9 +30270,9 @@ unreachable end f32.const -0 - f32.const inf f32.const -0 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29919,10 +30282,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0 f32.const -inf f32.const -inf - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29932,10 +30295,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0 f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29945,10 +30308,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1 f32.const 0 f32.const 0 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29959,9 +30322,9 @@ unreachable end f32.const -1 - f32.const 0 f32.const -1 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29971,10 +30334,10 @@ call $~lib/builtins/abort unreachable end - f32.const inf f32.const 0 f32.const 0 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29985,9 +30348,9 @@ unreachable end f32.const -inf - f32.const 0 f32.const -inf - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -29998,9 +30361,9 @@ unreachable end f32.const nan:0x400000 - f32.const 0 f32.const nan:0x400000 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30011,9 +30374,9 @@ unreachable end f32.const -1 - f32.const -0 f32.const -1 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30023,10 +30386,10 @@ call $~lib/builtins/abort unreachable end - f32.const inf f32.const -0 f32.const -0 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30037,9 +30400,9 @@ unreachable end f32.const -inf - f32.const -0 f32.const -inf - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30050,9 +30413,9 @@ unreachable end f32.const nan:0x400000 - f32.const -0 f32.const nan:0x400000 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30062,10 +30425,10 @@ call $~lib/builtins/abort unreachable end - f32.const inf f32.const 2 f32.const 2 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30075,10 +30438,10 @@ call $~lib/builtins/abort unreachable end - f32.const inf f32.const -0.5 f32.const -0.5 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30088,10 +30451,10 @@ call $~lib/builtins/abort unreachable end - f32.const inf f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30102,9 +30465,9 @@ unreachable end f32.const -inf - f32.const 2 f32.const -inf - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30115,9 +30478,9 @@ unreachable end f32.const -inf - f32.const -0.5 f32.const -inf - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30127,10 +30490,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30142,8 +30505,8 @@ end f32.const nan:0x400000 f32.const nan:0x400000 - f32.const nan:0x400000 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30153,10 +30516,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1 f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30166,10 +30529,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1 f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30180,9 +30543,9 @@ unreachable end f32.const 1 - f32.const inf f32.const 1 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30193,9 +30556,9 @@ unreachable end f32.const -1 - f32.const inf f32.const -1 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30207,8 +30570,8 @@ end f32.const inf f32.const inf - f32.const inf - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30219,9 +30582,9 @@ unreachable end f32.const -inf - f32.const inf f32.const -inf - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30231,10 +30594,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1 f32.const -inf f32.const -inf - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30244,10 +30607,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1 f32.const -inf f32.const -inf - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30257,10 +30620,10 @@ call $~lib/builtins/abort unreachable end - f32.const inf f32.const -inf f32.const -inf - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30272,8 +30635,8 @@ end f32.const -inf f32.const -inf - f32.const -inf - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30283,10 +30646,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1.75 f32.const 0.5 f32.const 0.5 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30297,9 +30660,9 @@ unreachable end f32.const -1.75 - f32.const 0.5 f32.const -1.75 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30309,10 +30672,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1.75 f32.const -0.5 f32.const -0.5 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -30323,9 +30686,9 @@ unreachable end f32.const -1.75 - f32.const -0.5 f32.const -1.75 - call $std/math/test_minf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32131,8 +32494,10 @@ end f32.const -8.066848754882812 f32.const 4.535662651062012 + call $~lib/math/NativeMathf.mod f32.const -3.531186103820801 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32144,8 +32509,10 @@ end f32.const 4.345239639282227 f32.const -8.887990951538086 + call $~lib/math/NativeMathf.mod f32.const 4.345239639282227 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32157,8 +32524,10 @@ end f32.const -8.381433486938477 f32.const -2.7636072635650635 + call $~lib/math/NativeMathf.mod f32.const -0.09061169624328613 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32170,8 +32539,10 @@ end f32.const -6.531673431396484 f32.const 4.567535400390625 + call $~lib/math/NativeMathf.mod f32.const -1.9641380310058594 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32183,8 +32554,10 @@ end f32.const 9.267057418823242 f32.const 4.811392307281494 + call $~lib/math/NativeMathf.mod f32.const 4.455665111541748 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32196,8 +32569,10 @@ end f32.const -6.450045585632324 f32.const 0.6620717644691467 + call $~lib/math/NativeMathf.mod f32.const -0.49139970541000366 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32209,8 +32584,10 @@ end f32.const 7.858890056610107 f32.const 0.052154526114463806 + call $~lib/math/NativeMathf.mod f32.const 0.0357111394405365 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32222,8 +32599,10 @@ end f32.const -0.7920545339584351 f32.const 7.676402568817139 + call $~lib/math/NativeMathf.mod f32.const -0.7920545339584351 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32235,8 +32614,10 @@ end f32.const 0.6157026886940002 f32.const 2.0119025707244873 + call $~lib/math/NativeMathf.mod f32.const 0.6157026886940002 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32248,8 +32629,10 @@ end f32.const -0.5587586760520935 f32.const 0.03223983198404312 + call $~lib/math/NativeMathf.mod f32.const -0.010681532323360443 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32261,8 +32644,10 @@ end f32.const 0 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const 0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32274,8 +32659,10 @@ end f32.const -0 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const -0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32287,8 +32674,10 @@ end f32.const 0.5 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const 0.5 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32300,8 +32689,10 @@ end f32.const -0.5 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const -0.5 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32313,8 +32704,10 @@ end f32.const 1 f32.const 1 + call $~lib/math/NativeMathf.mod + f32.const 0 f32.const 0 - call $std/math/test_modf + call $std/math/check i32.eqz if i32.const 0 @@ -32326,8 +32719,10 @@ end f32.const -1 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const -0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32339,8 +32734,10 @@ end f32.const 1.5 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const 0.5 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32352,8 +32749,10 @@ end f32.const -1.5 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const -0.5 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32365,8 +32764,10 @@ end f32.const 2 f32.const 1 + call $~lib/math/NativeMathf.mod + f32.const 0 f32.const 0 - call $std/math/test_modf + call $std/math/check i32.eqz if i32.const 0 @@ -32378,8 +32779,10 @@ end f32.const -2 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const -0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32391,8 +32794,10 @@ end f32.const inf f32.const 1 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32404,8 +32809,10 @@ end f32.const -inf f32.const 1 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32417,8 +32824,10 @@ end f32.const nan:0x400000 f32.const 1 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32430,8 +32839,10 @@ end f32.const 0 f32.const -1 + call $~lib/math/NativeMathf.mod + f32.const 0 f32.const 0 - call $std/math/test_modf + call $std/math/check i32.eqz if i32.const 0 @@ -32443,8 +32854,10 @@ end f32.const -0 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const -0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32456,8 +32869,10 @@ end f32.const 0.5 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const 0.5 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32469,8 +32884,10 @@ end f32.const -0.5 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const -0.5 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32482,8 +32899,10 @@ end f32.const 1 f32.const -1 + call $~lib/math/NativeMathf.mod + f32.const 0 f32.const 0 - call $std/math/test_modf + call $std/math/check i32.eqz if i32.const 0 @@ -32495,8 +32914,10 @@ end f32.const -1 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const -0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32508,8 +32929,10 @@ end f32.const 1.5 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const 0.5 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32521,8 +32944,10 @@ end f32.const -1.5 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const -0.5 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32534,8 +32959,10 @@ end f32.const 2 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const 0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32547,8 +32974,10 @@ end f32.const -2 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const -0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32560,8 +32989,10 @@ end f32.const inf f32.const -1 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32573,8 +33004,10 @@ end f32.const -inf f32.const -1 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32586,8 +33019,10 @@ end f32.const nan:0x400000 f32.const -1 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32599,8 +33034,10 @@ end f32.const 0 f32.const 0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32612,8 +33049,10 @@ end f32.const 0 f32.const -0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32625,8 +33064,10 @@ end f32.const 0 f32.const inf + call $~lib/math/NativeMathf.mod f32.const 0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32638,8 +33079,10 @@ end f32.const 0 f32.const -inf + call $~lib/math/NativeMathf.mod f32.const 0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32651,8 +33094,10 @@ end f32.const 0 f32.const nan:0x400000 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32664,8 +33109,10 @@ end f32.const -0 f32.const 0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32677,8 +33124,10 @@ end f32.const -0 f32.const -0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32690,8 +33139,10 @@ end f32.const -0 f32.const inf + call $~lib/math/NativeMathf.mod f32.const -0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32703,8 +33154,10 @@ end f32.const -0 f32.const -inf + call $~lib/math/NativeMathf.mod f32.const -0 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32716,8 +33169,10 @@ end f32.const -0 f32.const nan:0x400000 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32729,8 +33184,10 @@ end f32.const 1 f32.const 0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32742,8 +33199,10 @@ end f32.const -1 f32.const 0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32755,8 +33214,10 @@ end f32.const inf f32.const 0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32768,8 +33229,10 @@ end f32.const -inf f32.const 0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32781,8 +33244,10 @@ end f32.const nan:0x400000 f32.const 0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32794,8 +33259,10 @@ end f32.const -1 f32.const -0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32807,8 +33274,10 @@ end f32.const inf f32.const -0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32820,8 +33289,10 @@ end f32.const -inf f32.const -0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32833,8 +33304,10 @@ end f32.const nan:0x400000 f32.const -0 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32846,8 +33319,10 @@ end f32.const inf f32.const 2 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32859,8 +33334,10 @@ end f32.const inf f32.const -0.5 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32872,8 +33349,10 @@ end f32.const inf f32.const nan:0x400000 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32885,8 +33364,10 @@ end f32.const -inf f32.const 2 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32898,8 +33379,10 @@ end f32.const -inf f32.const -0.5 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32911,8 +33394,10 @@ end f32.const -inf f32.const nan:0x400000 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32924,8 +33409,10 @@ end f32.const nan:0x400000 f32.const nan:0x400000 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32937,8 +33424,10 @@ end f32.const 1 f32.const nan:0x400000 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32950,8 +33439,10 @@ end f32.const -1 f32.const nan:0x400000 + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32963,8 +33454,10 @@ end f32.const 1 f32.const inf + call $~lib/math/NativeMathf.mod f32.const 1 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32976,8 +33469,10 @@ end f32.const -1 f32.const inf + call $~lib/math/NativeMathf.mod f32.const -1 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -32989,8 +33484,10 @@ end f32.const inf f32.const inf + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -33002,8 +33499,10 @@ end f32.const -inf f32.const inf + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -33015,8 +33514,10 @@ end f32.const 1 f32.const -inf + call $~lib/math/NativeMathf.mod f32.const 1 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -33028,8 +33529,10 @@ end f32.const -1 f32.const -inf + call $~lib/math/NativeMathf.mod f32.const -1 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -33041,8 +33544,10 @@ end f32.const inf f32.const -inf + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -33054,8 +33559,10 @@ end f32.const -inf f32.const -inf + call $~lib/math/NativeMathf.mod f32.const nan:0x400000 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -33067,8 +33574,10 @@ end f32.const 1.75 f32.const 0.5 + call $~lib/math/NativeMathf.mod f32.const 0.25 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -33080,8 +33589,10 @@ end f32.const -1.75 f32.const 0.5 + call $~lib/math/NativeMathf.mod f32.const -0.25 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -33093,8 +33604,10 @@ end f32.const 1.75 f32.const -0.5 + call $~lib/math/NativeMathf.mod f32.const 0.25 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -33106,8 +33619,10 @@ end f32.const -1.75 f32.const -0.5 + call $~lib/math/NativeMathf.mod f32.const -0.25 - call $std/math/test_modf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -35046,9 +35561,10 @@ end f32.const -8.066848754882812 f32.const 4.535662651062012 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35060,9 +35576,10 @@ end f32.const 4.345239639282227 f32.const -8.887990951538086 + call $~lib/math/NativeMathf.pow f32.const 2.134714122803416e-06 f32.const 0.1436440795660019 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35074,9 +35591,10 @@ end f32.const -8.381433486938477 f32.const -2.7636072635650635 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35088,9 +35606,10 @@ end f32.const -6.531673431396484 f32.const 4.567535400390625 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35102,9 +35621,10 @@ end f32.const 9.267057418823242 f32.const 4.811392307281494 + call $~lib/math/NativeMathf.pow f32.const 44909.33203125 f32.const -0.05356409028172493 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35116,9 +35636,10 @@ end f32.const -6.450045585632324 f32.const 0.6620717644691467 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35130,9 +35651,10 @@ end f32.const 7.858890056610107 f32.const 0.052154526114463806 + call $~lib/math/NativeMathf.pow f32.const 1.1135177612304688 f32.const 0.19122089445590973 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35144,9 +35666,10 @@ end f32.const -0.7920545339584351 f32.const 7.676402568817139 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35158,9 +35681,10 @@ end f32.const 0.6157026886940002 f32.const 2.0119025707244873 + call $~lib/math/NativeMathf.pow f32.const 0.3769077658653259 f32.const 0.337149053812027 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35172,9 +35696,10 @@ end f32.const -0.5587586760520935 f32.const 0.03223983198404312 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35186,9 +35711,10 @@ end f32.const 0 f32.const nan:0x400000 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35200,9 +35726,10 @@ end f32.const 0 f32.const inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35214,9 +35741,10 @@ end f32.const 0 f32.const 3 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35228,9 +35756,10 @@ end f32.const 0 f32.const 2 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35242,9 +35771,10 @@ end f32.const 0 f32.const 1 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35256,9 +35786,10 @@ end f32.const 0 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35270,9 +35801,10 @@ end f32.const 0 f32.const 0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35284,9 +35816,10 @@ end f32.const 0 f32.const -0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35298,9 +35831,10 @@ end f32.const 0 f32.const -0.5 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35312,9 +35846,10 @@ end f32.const 0 f32.const -1 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35326,9 +35861,10 @@ end f32.const 0 f32.const -2 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35340,9 +35876,10 @@ end f32.const 0 f32.const -3 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35354,9 +35891,10 @@ end f32.const 0 f32.const -4 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35368,9 +35906,10 @@ end f32.const 0 f32.const -inf + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35382,9 +35921,10 @@ end f32.const -0 f32.const nan:0x400000 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35396,9 +35936,10 @@ end f32.const -0 f32.const inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35410,9 +35951,10 @@ end f32.const -0 f32.const 3 + call $~lib/math/NativeMathf.pow f32.const -0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35424,9 +35966,10 @@ end f32.const -0 f32.const 2 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35438,9 +35981,10 @@ end f32.const -0 f32.const 1 + call $~lib/math/NativeMathf.pow f32.const -0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35452,9 +35996,10 @@ end f32.const -0 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35466,9 +36011,10 @@ end f32.const -0 f32.const 0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35480,9 +36026,10 @@ end f32.const -0 f32.const -0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35494,9 +36041,10 @@ end f32.const -0 f32.const -0.5 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35508,9 +36056,10 @@ end f32.const -0 f32.const -1 + call $~lib/math/NativeMathf.pow f32.const -inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35522,9 +36071,10 @@ end f32.const -0 f32.const -2 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35536,9 +36086,10 @@ end f32.const -0 f32.const -3 + call $~lib/math/NativeMathf.pow f32.const -inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35550,9 +36101,10 @@ end f32.const -0 f32.const -4 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35564,9 +36116,10 @@ end f32.const -0 f32.const -inf + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35578,9 +36131,10 @@ end f32.const nan:0x400000 f32.const 0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35592,9 +36146,10 @@ end f32.const inf f32.const 0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35606,9 +36161,10 @@ end f32.const -inf f32.const 0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35620,9 +36176,10 @@ end f32.const 1 f32.const 0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35634,9 +36191,10 @@ end f32.const -1 f32.const 0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35648,9 +36206,10 @@ end f32.const -0.5 f32.const 0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35662,9 +36221,10 @@ end f32.const nan:0x400000 f32.const -0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35676,9 +36236,10 @@ end f32.const inf f32.const -0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35690,9 +36251,10 @@ end f32.const -inf f32.const -0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35704,9 +36266,10 @@ end f32.const 1 f32.const -0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35718,9 +36281,10 @@ end f32.const -1 f32.const -0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35732,9 +36296,10 @@ end f32.const -0.5 f32.const -0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35746,9 +36311,10 @@ end f32.const -1 f32.const nan:0x400000 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35760,9 +36326,10 @@ end f32.const -1 f32.const inf + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35774,9 +36341,10 @@ end f32.const -1 f32.const -inf + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35788,9 +36356,10 @@ end f32.const -1 f32.const 2 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35802,9 +36371,10 @@ end f32.const -1 f32.const -1 + call $~lib/math/NativeMathf.pow f32.const -1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35816,9 +36386,10 @@ end f32.const -1 f32.const -2 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35830,9 +36401,10 @@ end f32.const -1 f32.const -3 + call $~lib/math/NativeMathf.pow f32.const -1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35844,9 +36416,10 @@ end f32.const -1 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35858,9 +36431,10 @@ end f32.const 1 f32.const nan:0x400000 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35872,9 +36446,10 @@ end f32.const 1 f32.const inf + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35886,9 +36461,10 @@ end f32.const 1 f32.const -inf + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35900,9 +36476,10 @@ end f32.const 1 f32.const 3 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35914,9 +36491,10 @@ end f32.const 1 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35928,9 +36506,10 @@ end f32.const 1 f32.const -0.5 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35942,9 +36521,10 @@ end f32.const 1 f32.const -3 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35956,9 +36536,10 @@ end f32.const -0.5 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35970,9 +36551,10 @@ end f32.const -0.5 f32.const 1.5 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35984,9 +36566,10 @@ end f32.const -0.5 f32.const 2 + call $~lib/math/NativeMathf.pow f32.const 0.25 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -35998,9 +36581,10 @@ end f32.const -0.5 f32.const 3 + call $~lib/math/NativeMathf.pow f32.const -0.125 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36012,9 +36596,10 @@ end f32.const -0.5 f32.const inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36026,9 +36611,10 @@ end f32.const -0.5 f32.const -inf + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36040,9 +36626,10 @@ end f32.const -0.5 f32.const nan:0x400000 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36054,9 +36641,10 @@ end f32.const 0.5 f32.const inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36068,9 +36656,10 @@ end f32.const 0.5 f32.const -inf + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36082,9 +36671,10 @@ end f32.const 0.5 f32.const nan:0x400000 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36096,9 +36686,10 @@ end f32.const 1.5 f32.const inf + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36110,9 +36701,10 @@ end f32.const 1.5 f32.const -inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36124,9 +36716,10 @@ end f32.const 1.5 f32.const nan:0x400000 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36138,9 +36731,10 @@ end f32.const inf f32.const nan:0x400000 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36152,9 +36746,10 @@ end f32.const inf f32.const inf + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36166,9 +36761,10 @@ end f32.const inf f32.const -inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36180,9 +36776,10 @@ end f32.const inf f32.const 3 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36194,9 +36791,10 @@ end f32.const inf f32.const 2 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36208,9 +36806,10 @@ end f32.const inf f32.const 1 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36222,9 +36821,10 @@ end f32.const inf f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36236,9 +36836,10 @@ end f32.const inf f32.const -0.5 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36250,9 +36851,10 @@ end f32.const inf f32.const -1 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36264,9 +36866,10 @@ end f32.const inf f32.const -2 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36278,9 +36881,10 @@ end f32.const -inf f32.const nan:0x400000 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36292,9 +36896,10 @@ end f32.const -inf f32.const inf + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36306,9 +36911,10 @@ end f32.const -inf f32.const -inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36320,9 +36926,10 @@ end f32.const -inf f32.const 3 + call $~lib/math/NativeMathf.pow f32.const -inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36334,9 +36941,10 @@ end f32.const -inf f32.const 2 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36348,9 +36956,10 @@ end f32.const -inf f32.const 1 + call $~lib/math/NativeMathf.pow f32.const -inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36362,9 +36971,10 @@ end f32.const -inf f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36376,9 +36986,10 @@ end f32.const -inf f32.const -0.5 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36390,9 +37001,10 @@ end f32.const -inf f32.const -1 + call $~lib/math/NativeMathf.pow f32.const -0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36404,9 +37016,10 @@ end f32.const -inf f32.const -2 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36418,9 +37031,10 @@ end f32.const nan:0x400000 f32.const 1 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36432,9 +37046,10 @@ end f32.const nan:0x400000 f32.const -1 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36446,9 +37061,10 @@ end f32.const -2 f32.const 1 + call $~lib/math/NativeMathf.pow f32.const -2 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36460,9 +37076,10 @@ end f32.const -2 f32.const -1 + call $~lib/math/NativeMathf.pow f32.const -0.5 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36474,9 +37091,10 @@ end f32.const 0 f32.const 1 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36488,9 +37106,10 @@ end f32.const -0 f32.const 1 + call $~lib/math/NativeMathf.pow f32.const -0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36502,9 +37121,10 @@ end f32.const 1.1754943508222875e-38 f32.const 1 + call $~lib/math/NativeMathf.pow f32.const 1.1754943508222875e-38 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36516,9 +37136,10 @@ end f32.const -1.1754943508222875e-38 f32.const 1 + call $~lib/math/NativeMathf.pow f32.const -1.1754943508222875e-38 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36530,9 +37151,10 @@ end f32.const 3402823466385288598117041e14 f32.const 1 + call $~lib/math/NativeMathf.pow f32.const 3402823466385288598117041e14 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36544,9 +37166,10 @@ end f32.const -3402823466385288598117041e14 f32.const 1 + call $~lib/math/NativeMathf.pow f32.const -3402823466385288598117041e14 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36558,9 +37181,10 @@ end f32.const 0 f32.const 3402823466385288598117041e14 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36572,9 +37196,10 @@ end f32.const 0 f32.const 1.1754943508222875e-38 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36586,9 +37211,10 @@ end f32.const -0 f32.const 3402823466385288598117041e14 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36600,9 +37226,10 @@ end f32.const -0 f32.const 17 + call $~lib/math/NativeMathf.pow f32.const -0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36614,9 +37241,10 @@ end f32.const -0 f32.const 2 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36628,9 +37256,10 @@ end f32.const -0 f32.const 1.1754943508222875e-38 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36642,9 +37271,10 @@ end f32.const -1.100000023841858 f32.const 101 + call $~lib/math/NativeMathf.pow f32.const -15158.70703125 f32.const -0.2798735499382019 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36656,9 +37286,10 @@ end f32.const 19 f32.const 5 + call $~lib/math/NativeMathf.pow f32.const 2476099 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36670,9 +37301,10 @@ end f32.const -19 f32.const 5 + call $~lib/math/NativeMathf.pow f32.const -2476099 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36684,9 +37316,10 @@ end f32.const -193 f32.const 3 + call $~lib/math/NativeMathf.pow f32.const -7189057 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36698,9 +37331,10 @@ end f32.const -1201 f32.const 2 + call $~lib/math/NativeMathf.pow f32.const 1442401 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36712,9 +37346,10 @@ end f32.const 7.312918663024902 f32.const 17.122268676757812 + call $~lib/math/NativeMathf.pow f32.const 624013315407872 f32.const -0.14995409548282623 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36726,9 +37361,10 @@ end f32.const 18.804489135742188 f32.const 3.3214492797851562 + call $~lib/math/NativeMathf.pow f32.const 17076.3515625 f32.const 0.3042995035648346 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36740,9 +37376,10 @@ end f32.const 7.290969371795654 f32.const 9.60707950592041 + call $~lib/math/NativeMathf.pow f32.const 194467360 f32.const -0.10728006064891815 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36754,9 +37391,10 @@ end f32.const 15.783316612243652 f32.const 18.55087661743164 + call $~lib/math/NativeMathf.pow f32.const 16889945384019652771840 f32.const 0.09180249273777008 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36768,9 +37406,10 @@ end f32.const 8.319306373596191 f32.const 0.4197559952735901 + call $~lib/math/NativeMathf.pow f32.const 2.43339204788208 f32.const 0.009661106392741203 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36782,9 +37421,10 @@ end f32.const 5.831245422363281 f32.const 10.462174415588379 + call $~lib/math/NativeMathf.pow f32.const 102690080 f32.const -1.4237762661650777e-03 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36796,9 +37436,10 @@ end f32.const 2.415773391723633 f32.const 17.12181282043457 + call $~lib/math/NativeMathf.pow f32.const 3619232.25 f32.const 0.2961936891078949 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36810,9 +37451,10 @@ end f32.const 0.03832307085394859 f32.const 0.011254354380071163 + call $~lib/math/NativeMathf.pow f32.const 0.9639571905136108 f32.const -0.4840981066226959 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36824,9 +37466,10 @@ end f32.const 5.4462971687316895 f32.const 15.814705848693848 + call $~lib/math/NativeMathf.pow f32.const 437749907456 f32.const -0.40305933356285095 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36838,9 +37481,10 @@ end f32.const 12.87027645111084 f32.const 14.93734359741211 + call $~lib/math/NativeMathf.pow f32.const 37522809982812160 f32.const 0.10445278882980347 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36852,9 +37496,10 @@ end f32.const nan:0x400000 f32.const 0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36866,9 +37511,10 @@ end f32.const nan:0x400000 f32.const 0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36880,9 +37526,10 @@ end f32.const inf f32.const 0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36894,9 +37541,10 @@ end f32.const -inf f32.const 0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36908,9 +37556,10 @@ end f32.const 1.401298464324817e-45 f32.const 0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36922,9 +37571,10 @@ end f32.const -1.401298464324817e-45 f32.const 0 + call $~lib/math/NativeMathf.pow f32.const 1 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36936,9 +37586,10 @@ end f32.const nan:0x400000 f32.const 1 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36950,9 +37601,10 @@ end f32.const nan:0x400000 f32.const 1 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36964,9 +37616,10 @@ end f32.const inf f32.const 1 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36978,9 +37631,10 @@ end f32.const -inf f32.const 1 + call $~lib/math/NativeMathf.pow f32.const -inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -36992,9 +37646,10 @@ end f32.const nan:0x400000 f32.const nan:0x400000 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37006,9 +37661,10 @@ end f32.const inf f32.const nan:0x400000 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37020,9 +37676,10 @@ end f32.const -inf f32.const nan:0x400000 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37034,9 +37691,10 @@ end f32.const 1 f32.const nan:0x400000 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37048,9 +37706,10 @@ end f32.const -1 f32.const nan:0x400000 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37062,9 +37721,10 @@ end f32.const -0 f32.const nan:0x400000 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37076,9 +37736,10 @@ end f32.const 0 f32.const nan:0x400000 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37090,9 +37751,10 @@ end f32.const 1.0000001192092896 f32.const inf + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37104,9 +37766,10 @@ end f32.const inf f32.const inf + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37118,9 +37781,10 @@ end f32.const -1.0000001192092896 f32.const inf + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37132,9 +37796,10 @@ end f32.const -inf f32.const inf + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37146,9 +37811,10 @@ end f32.const 1.0000001192092896 f32.const -inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37160,9 +37826,10 @@ end f32.const inf f32.const -inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37174,9 +37841,10 @@ end f32.const -1.0000001192092896 f32.const -inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37188,9 +37856,10 @@ end f32.const -inf f32.const -inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37202,9 +37871,10 @@ end f32.const 0.9999999403953552 f32.const inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37216,9 +37886,10 @@ end f32.const 1.401298464324817e-45 f32.const inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37230,9 +37901,10 @@ end f32.const 0 f32.const inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37244,9 +37916,10 @@ end f32.const -0.9999999403953552 f32.const inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37258,9 +37931,10 @@ end f32.const -1.401298464324817e-45 f32.const inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37272,9 +37946,10 @@ end f32.const -0 f32.const inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37286,9 +37961,10 @@ end f32.const 0 f32.const 1.401298464324817e-45 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37300,9 +37976,10 @@ end f32.const -0 f32.const 1.401298464324817e-45 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37314,9 +37991,10 @@ end f32.const 0 f32.const -3402823466385288598117041e14 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37328,9 +38006,10 @@ end f32.const 0 f32.const -1.401298464324817e-45 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37342,9 +38021,10 @@ end f32.const -0 f32.const -3402823466385288598117041e14 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37356,9 +38036,10 @@ end f32.const -0 f32.const -2 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37370,9 +38051,10 @@ end f32.const -0 f32.const -1.401298464324817e-45 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37384,9 +38066,10 @@ end f32.const -0 f32.const -1 + call $~lib/math/NativeMathf.pow f32.const -inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37398,9 +38081,10 @@ end f32.const -0 f32.const -17 + call $~lib/math/NativeMathf.pow f32.const -inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37412,9 +38096,10 @@ end f32.const inf f32.const 1.401298464324817e-45 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37426,9 +38111,10 @@ end f32.const inf f32.const -1.401298464324817e-45 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37440,9 +38126,10 @@ end f32.const -inf f32.const 3402823466385288598117041e14 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37454,9 +38141,10 @@ end f32.const -inf f32.const 1.401298464324817e-45 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37468,9 +38156,10 @@ end f32.const -inf f32.const -3402823466385288598117041e14 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37482,9 +38171,10 @@ end f32.const -inf f32.const -1.401298464324817e-45 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37496,9 +38186,10 @@ end f32.const -inf f32.const 5 + call $~lib/math/NativeMathf.pow f32.const -inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37510,9 +38201,10 @@ end f32.const -inf f32.const -5 + call $~lib/math/NativeMathf.pow f32.const -0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37524,9 +38216,10 @@ end f32.const -inf f32.const 6 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37538,9 +38231,10 @@ end f32.const -inf f32.const -6 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37552,9 +38246,10 @@ end f32.const -inf f32.const 2.000000238418579 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37566,9 +38261,10 @@ end f32.const -1 f32.const 1.0000001192092896 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37580,9 +38276,10 @@ end f32.const -1.401298464324817e-45 f32.const -1.9999998807907104 + call $~lib/math/NativeMathf.pow f32.const nan:0x400000 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37594,9 +38291,10 @@ end f32.const -10 f32.const 309 + call $~lib/math/NativeMathf.pow f32.const -inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37608,9 +38306,10 @@ end f32.const -inf f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37622,9 +38321,10 @@ end f32.const 2.802596928649634e-45 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const 5.293955920339377e-23 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37636,9 +38336,10 @@ end f32.const 1.1210387714598537e-44 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const 1.0587911840678754e-22 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37650,9 +38351,10 @@ end f32.const 2.938735877055719e-39 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const 5.421010862427522e-20 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37664,9 +38366,10 @@ end f32.const 5.877471754111438e-39 f32.const -1 + call $~lib/math/NativeMathf.pow f32.const 1701411834604692317316873e14 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37678,9 +38381,10 @@ end f32.const 1.1754943508222875e-38 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const 1.0842021724855044e-19 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37692,9 +38396,10 @@ end f32.const 1.1754943508222875e-38 f32.const -1 + call $~lib/math/NativeMathf.pow f32.const 8507059173023461586584365e13 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37706,9 +38411,10 @@ end f32.const 2.350988701644575e-38 f32.const -1 + call $~lib/math/NativeMathf.pow f32.const 4253529586511730793292182e13 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37720,9 +38426,10 @@ end f32.const 4.70197740328915e-38 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const 2.168404344971009e-19 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37734,9 +38441,10 @@ end f32.const 4.70197740328915e-38 f32.const -1 + call $~lib/math/NativeMathf.pow f32.const 2126764793255865396646091e13 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37748,9 +38456,10 @@ end f32.const 5.293955920339377e-23 f32.const 2 + call $~lib/math/NativeMathf.pow f32.const 2.802596928649634e-45 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37762,9 +38471,10 @@ end f32.const 2.168404344971009e-19 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const 4.656612873077393e-10 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37776,9 +38486,10 @@ end f32.const 2.3283064365386963e-10 f32.const 2 + call $~lib/math/NativeMathf.pow f32.const 5.421010862427522e-20 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37790,9 +38501,10 @@ end f32.const 4.656612873077393e-10 f32.const 2 + call $~lib/math/NativeMathf.pow f32.const 2.168404344971009e-19 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37804,9 +38516,10 @@ end f32.const 1.1920928955078125e-07 f32.const -1 + call $~lib/math/NativeMathf.pow f32.const 8388608 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37818,9 +38531,10 @@ end f32.const 0.000034332275390625 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const 0.005859375 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37832,9 +38546,10 @@ end f32.const 0.00006103515625 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const 0.0078125 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37846,9 +38561,10 @@ end f32.const 0.00390625 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const 0.0625 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37860,9 +38576,10 @@ end f32.const 0.03515625 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const 0.1875 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37874,9 +38591,10 @@ end f32.const 0.0625 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const 0.25 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37888,9 +38606,10 @@ end f32.const 0.25 f32.const 2 + call $~lib/math/NativeMathf.pow f32.const 0.0625 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37902,9 +38621,10 @@ end f32.const 2126764793255865396646091e13 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const 4611686018427387904 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37916,9 +38636,10 @@ end f32.const 2126764793255865396646091e13 f32.const -1 + call $~lib/math/NativeMathf.pow f32.const 4.70197740328915e-38 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37930,9 +38651,10 @@ end f32.const 4253529586511730793292182e13 f32.const inf + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37944,9 +38666,10 @@ end f32.const 4253529586511730793292182e13 f32.const -1 + call $~lib/math/NativeMathf.pow f32.const 2.350988701644575e-38 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37958,9 +38681,10 @@ end f32.const 4253529586511730793292182e13 f32.const -inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37972,9 +38696,10 @@ end f32.const 8507059173023461586584365e13 f32.const 0.5 + call $~lib/math/NativeMathf.pow f32.const 9223372036854775808 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -37986,9 +38711,10 @@ end f32.const 8507059173023461586584365e13 f32.const -1 + call $~lib/math/NativeMathf.pow f32.const 1.1754943508222875e-38 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -38000,9 +38726,10 @@ end f32.const 3402823466385288598117041e14 f32.const inf + call $~lib/math/NativeMathf.pow f32.const inf f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -38014,9 +38741,10 @@ end f32.const 3402823466385288598117041e14 f32.const -inf + call $~lib/math/NativeMathf.pow f32.const 0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -38028,9 +38756,10 @@ end f32.const 1701411834604692317316873e14 f32.const -2 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const -2.465190328815662e-32 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -38042,9 +38771,10 @@ end f32.const 1701411834604692317316873e14 f32.const -3 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const -0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -38056,9 +38786,10 @@ end f32.const 1701411834604692317316873e14 f32.const -255 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const -0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -38070,9 +38801,10 @@ end f32.const 1701411834604692317316873e14 f32.const -256 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const -0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -38084,9 +38816,10 @@ end f32.const 1701411834604692317316873e14 f32.const -257 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const -0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -38098,9 +38831,10 @@ end f32.const 1701411834604692317316873e14 f32.const -260 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const -0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -38112,9 +38846,10 @@ end f32.const 1701411834604692317316873e14 f32.const -261 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const -0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -38126,9 +38861,10 @@ end f32.const 1701411834604692317316873e14 f32.const -32767 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const -0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -38140,9 +38876,10 @@ end f32.const 1701411834604692317316873e14 f32.const -32768 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const -0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -38154,9 +38891,10 @@ end f32.const 3402822046616616342500112e14 f32.const -1 + call $~lib/math/NativeMathf.pow f32.const 2.938737278354183e-39 f32.const -4.768373855768004e-07 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -38168,9 +38906,10 @@ end f32.const 3402822046616616342500112e14 f32.const -2 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const -6.162981699510909e-33 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -38182,9 +38921,10 @@ end f32.const -1701411834604692317316873e14 f32.const -32767 + call $~lib/math/NativeMathf.pow f32.const -0 f32.const 0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -38196,9 +38936,10 @@ end f32.const -1701411834604692317316873e14 f32.const -32768 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const -0 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -38210,9 +38951,10 @@ end f32.const -3402822046616616342500112e14 f32.const -1 + call $~lib/math/NativeMathf.pow f32.const -2.938737278354183e-39 f32.const 4.768373855768004e-07 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -38224,9 +38966,10 @@ end f32.const -3402822046616616342500112e14 f32.const -2 + call $~lib/math/NativeMathf.pow f32.const 0 f32.const -6.162981699510909e-33 - call $std/math/test_powf + call $std/math/check i32.eqz if i32.const 0 @@ -39246,8 +39989,10 @@ end f64.const -8.06684839057968 f64.const 4.535662560676869 + call $~lib/math/NativeMath.rem f64.const 1.0044767307740567 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39259,8 +40004,10 @@ end f64.const 4.345239849338305 f64.const -8.88799136300345 + call $~lib/math/NativeMath.rem f64.const 4.345239849338305 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39272,8 +40019,10 @@ end f64.const -8.38143342755525 f64.const -2.763607337379588 + call $~lib/math/NativeMath.rem f64.const -0.09061141541648476 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39285,8 +40034,10 @@ end f64.const -6.531673581913484 f64.const 4.567535276842744 + call $~lib/math/NativeMath.rem f64.const -1.9641383050707404 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39298,8 +40049,10 @@ end f64.const 9.267056966972586 f64.const 4.811392084359796 + call $~lib/math/NativeMath.rem f64.const -0.35572720174700656 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39311,8 +40064,10 @@ end f64.const -6.450045556060236 f64.const 0.6620717923376739 + call $~lib/math/NativeMath.rem f64.const 0.17067236731650248 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39324,8 +40079,10 @@ end f64.const 7.858890253041697 f64.const 0.05215452675006225 + call $~lib/math/NativeMath.rem f64.const -0.016443286217702822 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39337,8 +40094,10 @@ end f64.const -0.792054511984896 f64.const 7.67640268511754 + call $~lib/math/NativeMath.rem f64.const -0.792054511984896 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39350,8 +40109,10 @@ end f64.const 0.615702673197924 f64.const 2.0119025790324803 + call $~lib/math/NativeMath.rem f64.const 0.615702673197924 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39363,8 +40124,10 @@ end f64.const -0.5587586823609152 f64.const 0.03223983060263804 + call $~lib/math/NativeMath.rem f64.const -0.0106815621160685 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39376,8 +40139,10 @@ end f64.const 0 f64.const 1 + call $~lib/math/NativeMath.rem + f64.const 0 f64.const 0 - call $std/math/test_rem + call $std/math/check i32.eqz if i32.const 0 @@ -39389,8 +40154,10 @@ end f64.const -0 f64.const 1 + call $~lib/math/NativeMath.rem f64.const -0 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39402,8 +40169,10 @@ end f64.const 0.5 f64.const 1 + call $~lib/math/NativeMath.rem f64.const 0.5 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39415,8 +40184,10 @@ end f64.const -0.5 f64.const 1 + call $~lib/math/NativeMath.rem f64.const -0.5 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39428,8 +40199,10 @@ end f64.const 1 f64.const 1 + call $~lib/math/NativeMath.rem f64.const 0 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39441,8 +40214,10 @@ end f64.const -1 f64.const 1 + call $~lib/math/NativeMath.rem f64.const -0 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39454,8 +40229,10 @@ end f64.const 1.5 f64.const 1 + call $~lib/math/NativeMath.rem f64.const -0.5 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39467,8 +40244,10 @@ end f64.const -1.5 f64.const 1 + call $~lib/math/NativeMath.rem f64.const 0.5 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39480,8 +40259,10 @@ end f64.const 2 f64.const 1 + call $~lib/math/NativeMath.rem f64.const 0 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39493,8 +40274,10 @@ end f64.const -2 f64.const 1 + call $~lib/math/NativeMath.rem f64.const -0 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39506,8 +40289,10 @@ end f64.const inf f64.const 1 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39519,8 +40304,10 @@ end f64.const -inf f64.const 1 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39532,8 +40319,10 @@ end f64.const nan:0x8000000000000 f64.const 1 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39545,8 +40334,10 @@ end f64.const 0 f64.const -1 + call $~lib/math/NativeMath.rem f64.const 0 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39558,8 +40349,10 @@ end f64.const -0 f64.const -1 + call $~lib/math/NativeMath.rem f64.const -0 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39571,8 +40364,10 @@ end f64.const 0.5 f64.const -1 + call $~lib/math/NativeMath.rem f64.const 0.5 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39584,8 +40379,10 @@ end f64.const -0.5 f64.const -1 + call $~lib/math/NativeMath.rem f64.const -0.5 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39597,8 +40394,10 @@ end f64.const 1 f64.const -1 + call $~lib/math/NativeMath.rem f64.const 0 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39610,8 +40409,10 @@ end f64.const -1 f64.const -1 + call $~lib/math/NativeMath.rem f64.const -0 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39623,8 +40424,10 @@ end f64.const 1.5 f64.const -1 + call $~lib/math/NativeMath.rem f64.const -0.5 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39636,8 +40439,10 @@ end f64.const -1.5 f64.const -1 + call $~lib/math/NativeMath.rem f64.const 0.5 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39649,8 +40454,10 @@ end f64.const 2 f64.const -1 + call $~lib/math/NativeMath.rem f64.const 0 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39662,8 +40469,10 @@ end f64.const -2 f64.const -1 + call $~lib/math/NativeMath.rem f64.const -0 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39675,8 +40484,10 @@ end f64.const inf f64.const -1 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39688,8 +40499,10 @@ end f64.const -inf f64.const -1 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39701,8 +40514,10 @@ end f64.const nan:0x8000000000000 f64.const -1 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39714,8 +40529,10 @@ end f64.const 0 f64.const 0 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39727,8 +40544,10 @@ end f64.const 0 f64.const -0 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39740,8 +40559,10 @@ end f64.const 0 f64.const inf + call $~lib/math/NativeMath.rem + f64.const 0 f64.const 0 - call $std/math/test_rem + call $std/math/check i32.eqz if i32.const 0 @@ -39753,8 +40574,10 @@ end f64.const 0 f64.const -inf + call $~lib/math/NativeMath.rem f64.const 0 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39766,8 +40589,10 @@ end f64.const 0 f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39779,8 +40604,10 @@ end f64.const -0 f64.const 0 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39792,8 +40619,10 @@ end f64.const -0 f64.const -0 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39805,8 +40634,10 @@ end f64.const -0 f64.const inf + call $~lib/math/NativeMath.rem f64.const -0 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39818,8 +40649,10 @@ end f64.const -0 f64.const -inf + call $~lib/math/NativeMath.rem f64.const -0 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39831,8 +40664,10 @@ end f64.const -0 f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39844,8 +40679,10 @@ end f64.const 1 f64.const 0 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39857,8 +40694,10 @@ end f64.const -1 f64.const 0 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39870,8 +40709,10 @@ end f64.const inf f64.const 0 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39883,8 +40724,10 @@ end f64.const -inf f64.const 0 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39896,8 +40739,10 @@ end f64.const nan:0x8000000000000 f64.const 0 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39909,8 +40754,10 @@ end f64.const -1 f64.const -0 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39922,8 +40769,10 @@ end f64.const inf f64.const -0 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39935,8 +40784,10 @@ end f64.const -inf f64.const -0 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39948,8 +40799,10 @@ end f64.const nan:0x8000000000000 f64.const -0 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39961,8 +40814,10 @@ end f64.const inf f64.const 2 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39974,8 +40829,10 @@ end f64.const inf f64.const -0.5 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -39987,8 +40844,10 @@ end f64.const inf f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40000,8 +40859,10 @@ end f64.const -inf f64.const 2 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40013,8 +40874,10 @@ end f64.const -inf f64.const -0.5 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40026,8 +40889,10 @@ end f64.const -inf f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40039,8 +40904,10 @@ end f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40052,8 +40919,10 @@ end f64.const 1 f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40065,8 +40934,10 @@ end f64.const -1 f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40078,8 +40949,10 @@ end f64.const 1 f64.const inf + call $~lib/math/NativeMath.rem f64.const 1 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40091,8 +40964,10 @@ end f64.const -1 f64.const inf + call $~lib/math/NativeMath.rem f64.const -1 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40104,8 +40979,10 @@ end f64.const inf f64.const inf + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40117,8 +40994,10 @@ end f64.const -inf f64.const inf + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40130,8 +41009,10 @@ end f64.const 1 f64.const -inf + call $~lib/math/NativeMath.rem f64.const 1 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40143,8 +41024,10 @@ end f64.const -1 f64.const -inf + call $~lib/math/NativeMath.rem f64.const -1 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40156,8 +41039,10 @@ end f64.const inf f64.const -inf + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40169,8 +41054,10 @@ end f64.const -inf f64.const -inf + call $~lib/math/NativeMath.rem f64.const nan:0x8000000000000 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40182,8 +41069,10 @@ end f64.const 1.75 f64.const 0.5 + call $~lib/math/NativeMath.rem f64.const -0.25 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40195,8 +41084,10 @@ end f64.const -1.75 f64.const 0.5 + call $~lib/math/NativeMath.rem f64.const 0.25 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40208,8 +41099,10 @@ end f64.const 1.75 f64.const -0.5 + call $~lib/math/NativeMath.rem f64.const -0.25 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40221,8 +41114,10 @@ end f64.const -1.75 f64.const -0.5 + call $~lib/math/NativeMath.rem f64.const 0.25 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40234,8 +41129,10 @@ end f64.const 8e-323 f64.const inf + call $~lib/math/NativeMath.rem f64.const 8e-323 - call $std/math/test_rem + f64.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40247,8 +41144,10 @@ end f32.const -8.066848754882812 f32.const 4.535662651062012 + call $~lib/math/NativeMathf.rem f32.const 1.004476547241211 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40260,8 +41159,10 @@ end f32.const 4.345239639282227 f32.const -8.887990951538086 + call $~lib/math/NativeMathf.rem f32.const 4.345239639282227 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40273,8 +41174,10 @@ end f32.const -8.381433486938477 f32.const -2.7636072635650635 + call $~lib/math/NativeMathf.rem f32.const -0.09061169624328613 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40286,8 +41189,10 @@ end f32.const -6.531673431396484 f32.const 4.567535400390625 + call $~lib/math/NativeMathf.rem f32.const -1.9641380310058594 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40299,8 +41204,10 @@ end f32.const 9.267057418823242 f32.const 4.811392307281494 + call $~lib/math/NativeMathf.rem f32.const -0.3557271957397461 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40312,8 +41219,10 @@ end f32.const -6.450045585632324 f32.const 0.6620717644691467 + call $~lib/math/NativeMathf.rem f32.const 0.17067205905914307 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40325,8 +41234,10 @@ end f32.const 7.858890056610107 f32.const 0.052154526114463806 + call $~lib/math/NativeMathf.rem f32.const -0.016443386673927307 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40338,8 +41249,10 @@ end f32.const -0.7920545339584351 f32.const 7.676402568817139 + call $~lib/math/NativeMathf.rem f32.const -0.7920545339584351 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40351,8 +41264,10 @@ end f32.const 0.6157026886940002 f32.const 2.0119025707244873 + call $~lib/math/NativeMathf.rem f32.const 0.6157026886940002 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40364,8 +41279,10 @@ end f32.const -0.5587586760520935 f32.const 0.03223983198404312 + call $~lib/math/NativeMathf.rem f32.const -0.010681532323360443 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40377,8 +41294,10 @@ end f32.const 0 f32.const 1 + call $~lib/math/NativeMathf.rem + f32.const 0 f32.const 0 - call $std/math/test_remf + call $std/math/check i32.eqz if i32.const 0 @@ -40390,8 +41309,10 @@ end f32.const -0 f32.const 1 + call $~lib/math/NativeMathf.rem f32.const -0 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40403,8 +41324,10 @@ end f32.const 0.5 f32.const 1 + call $~lib/math/NativeMathf.rem f32.const 0.5 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40416,8 +41339,10 @@ end f32.const -0.5 f32.const 1 + call $~lib/math/NativeMathf.rem f32.const -0.5 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40429,8 +41354,10 @@ end f32.const 1 f32.const 1 + call $~lib/math/NativeMathf.rem f32.const 0 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40442,8 +41369,10 @@ end f32.const -1 f32.const 1 + call $~lib/math/NativeMathf.rem f32.const -0 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40455,8 +41384,10 @@ end f32.const 1.5 f32.const 1 + call $~lib/math/NativeMathf.rem f32.const -0.5 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40468,8 +41399,10 @@ end f32.const -1.5 f32.const 1 + call $~lib/math/NativeMathf.rem f32.const 0.5 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40481,8 +41414,10 @@ end f32.const 2 f32.const 1 + call $~lib/math/NativeMathf.rem + f32.const 0 f32.const 0 - call $std/math/test_remf + call $std/math/check i32.eqz if i32.const 0 @@ -40494,8 +41429,10 @@ end f32.const -2 f32.const 1 + call $~lib/math/NativeMathf.rem f32.const -0 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40507,8 +41444,10 @@ end f32.const inf f32.const 1 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40520,8 +41459,10 @@ end f32.const -inf f32.const 1 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40533,8 +41474,10 @@ end f32.const nan:0x400000 f32.const 1 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40546,8 +41489,10 @@ end f32.const 0 f32.const -1 + call $~lib/math/NativeMathf.rem + f32.const 0 f32.const 0 - call $std/math/test_remf + call $std/math/check i32.eqz if i32.const 0 @@ -40559,8 +41504,10 @@ end f32.const -0 f32.const -1 + call $~lib/math/NativeMathf.rem f32.const -0 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40572,8 +41519,10 @@ end f32.const 0.5 f32.const -1 + call $~lib/math/NativeMathf.rem f32.const 0.5 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40585,8 +41534,10 @@ end f32.const -0.5 f32.const -1 + call $~lib/math/NativeMathf.rem f32.const -0.5 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40598,8 +41549,10 @@ end f32.const 1 f32.const -1 + call $~lib/math/NativeMathf.rem f32.const 0 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40611,8 +41564,10 @@ end f32.const -1 f32.const -1 + call $~lib/math/NativeMathf.rem f32.const -0 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40624,8 +41579,10 @@ end f32.const 1.5 f32.const -1 + call $~lib/math/NativeMathf.rem f32.const -0.5 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40637,8 +41594,10 @@ end f32.const -1.5 f32.const -1 + call $~lib/math/NativeMathf.rem f32.const 0.5 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40650,8 +41609,10 @@ end f32.const 2 f32.const -1 + call $~lib/math/NativeMathf.rem + f32.const 0 f32.const 0 - call $std/math/test_remf + call $std/math/check i32.eqz if i32.const 0 @@ -40663,8 +41624,10 @@ end f32.const -2 f32.const -1 + call $~lib/math/NativeMathf.rem f32.const -0 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40676,8 +41639,10 @@ end f32.const inf f32.const -1 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40689,8 +41654,10 @@ end f32.const -inf f32.const -1 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40702,8 +41669,10 @@ end f32.const nan:0x400000 f32.const -1 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40715,8 +41684,10 @@ end f32.const 0 f32.const 0 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40728,8 +41699,10 @@ end f32.const 0 f32.const -0 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40741,8 +41714,10 @@ end f32.const 0 f32.const inf + call $~lib/math/NativeMathf.rem f32.const 0 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40754,8 +41729,10 @@ end f32.const 0 f32.const -inf + call $~lib/math/NativeMathf.rem + f32.const 0 f32.const 0 - call $std/math/test_remf + call $std/math/check i32.eqz if i32.const 0 @@ -40767,8 +41744,10 @@ end f32.const 0 f32.const nan:0x400000 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40780,8 +41759,10 @@ end f32.const -0 f32.const 0 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40793,8 +41774,10 @@ end f32.const -0 f32.const -0 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40806,8 +41789,10 @@ end f32.const -0 f32.const inf + call $~lib/math/NativeMathf.rem f32.const -0 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40819,8 +41804,10 @@ end f32.const -0 f32.const -inf + call $~lib/math/NativeMathf.rem f32.const -0 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40832,8 +41819,10 @@ end f32.const -0 f32.const nan:0x400000 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40845,8 +41834,10 @@ end f32.const 1 f32.const 0 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40858,8 +41849,10 @@ end f32.const -1 f32.const 0 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40871,8 +41864,10 @@ end f32.const inf f32.const 0 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40884,8 +41879,10 @@ end f32.const -inf f32.const 0 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40897,8 +41894,10 @@ end f32.const nan:0x400000 f32.const 0 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40910,8 +41909,10 @@ end f32.const -1 f32.const -0 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40923,8 +41924,10 @@ end f32.const inf f32.const -0 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40936,8 +41939,10 @@ end f32.const -inf f32.const -0 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40949,8 +41954,10 @@ end f32.const nan:0x400000 f32.const -0 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40962,8 +41969,10 @@ end f32.const inf f32.const 2 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40975,8 +41984,10 @@ end f32.const inf f32.const -0.5 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -40988,8 +41999,10 @@ end f32.const inf f32.const nan:0x400000 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41001,8 +42014,10 @@ end f32.const -inf f32.const 2 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41014,8 +42029,10 @@ end f32.const -inf f32.const -0.5 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41027,8 +42044,10 @@ end f32.const -inf f32.const nan:0x400000 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41040,8 +42059,10 @@ end f32.const nan:0x400000 f32.const nan:0x400000 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41053,8 +42074,10 @@ end f32.const 1 f32.const nan:0x400000 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41066,8 +42089,10 @@ end f32.const -1 f32.const nan:0x400000 + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41079,8 +42104,10 @@ end f32.const 1 f32.const inf + call $~lib/math/NativeMathf.rem f32.const 1 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41092,8 +42119,10 @@ end f32.const -1 f32.const inf + call $~lib/math/NativeMathf.rem f32.const -1 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41105,8 +42134,10 @@ end f32.const inf f32.const inf + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41118,8 +42149,10 @@ end f32.const -inf f32.const inf + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41131,8 +42164,10 @@ end f32.const 1 f32.const -inf + call $~lib/math/NativeMathf.rem f32.const 1 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41144,8 +42179,10 @@ end f32.const -1 f32.const -inf + call $~lib/math/NativeMathf.rem f32.const -1 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41157,8 +42194,10 @@ end f32.const inf f32.const -inf + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41170,8 +42209,10 @@ end f32.const -inf f32.const -inf + call $~lib/math/NativeMathf.rem f32.const nan:0x400000 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41183,8 +42224,10 @@ end f32.const 1.75 f32.const 0.5 + call $~lib/math/NativeMathf.rem f32.const -0.25 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41196,8 +42239,10 @@ end f32.const -1.75 f32.const 0.5 + call $~lib/math/NativeMathf.rem f32.const 0.25 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41209,8 +42254,10 @@ end f32.const 1.75 f32.const -0.5 + call $~lib/math/NativeMathf.rem f32.const -0.25 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41222,8 +42269,10 @@ end f32.const -1.75 f32.const -0.5 + call $~lib/math/NativeMathf.rem f32.const 0.25 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -41235,8 +42284,10 @@ end f32.const 5.877471754111438e-39 f32.const inf + call $~lib/math/NativeMathf.rem f32.const 5.877471754111438e-39 - call $std/math/test_remf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -42153,9 +43204,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.sin f32.const -0.977429211139679 f32.const 0.0801057294011116 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42166,9 +43218,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.sin f32.const -0.933354377746582 f32.const 0.34475627541542053 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42179,9 +43232,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.sin f32.const -0.8640924692153931 f32.const -0.468659907579422 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42192,9 +43246,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.sin f32.const -0.24593880772590637 f32.const -0.3955177664756775 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42205,9 +43260,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.sin f32.const 0.1570674479007721 f32.const -0.24006809294223785 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42218,9 +43274,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.sin f32.const 0.6146844625473022 f32.const -0.07707194238901138 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42231,9 +43288,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.sin f32.const -0.39549243450164795 f32.const -0.11720617115497589 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42244,9 +43302,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.sin f32.const 0.5326763391494751 f32.const -0.16059114038944244 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42257,9 +43316,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.sin f32.const 0.699110209941864 f32.const 0.26384368538856506 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42270,9 +43330,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.sin f32.const -0.627831220626831 f32.const 0.005127954296767712 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42283,9 +43344,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.sin f32.const 0 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42296,9 +43358,10 @@ unreachable end f32.const -0 + call $~lib/math/NativeMathf.sin f32.const -0 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42309,9 +43372,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.sin f32.const nan:0x400000 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42322,9 +43386,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.sin f32.const nan:0x400000 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42335,9 +43400,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.sin f32.const nan:0x400000 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42348,9 +43414,10 @@ unreachable end f32.const 1.862645149230957e-09 + call $~lib/math/NativeMathf.sin f32.const 1.862645149230957e-09 f32.const 4.850638554015907e-12 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42361,9 +43428,10 @@ unreachable end f32.const -1.862645149230957e-09 + call $~lib/math/NativeMathf.sin f32.const -1.862645149230957e-09 f32.const -4.850638554015907e-12 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42374,9 +43442,10 @@ unreachable end f32.const 1.1754943508222875e-38 + call $~lib/math/NativeMathf.sin f32.const 1.1754943508222875e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42387,9 +43456,10 @@ unreachable end f32.const -1.1754943508222875e-38 + call $~lib/math/NativeMathf.sin f32.const -1.1754943508222875e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42400,9 +43470,10 @@ unreachable end f32.const 1.401298464324817e-45 + call $~lib/math/NativeMathf.sin f32.const 1.401298464324817e-45 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42413,9 +43484,10 @@ unreachable end f32.const -1.401298464324817e-45 + call $~lib/math/NativeMathf.sin f32.const -1.401298464324817e-45 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42426,9 +43498,10 @@ unreachable end f32.const 1.175494490952134e-38 + call $~lib/math/NativeMathf.sin f32.const 1.175494490952134e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42439,9 +43512,10 @@ unreachable end f32.const 1.1754946310819804e-38 + call $~lib/math/NativeMathf.sin f32.const 1.1754946310819804e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42452,9 +43526,10 @@ unreachable end f32.const 2.3509880009953429e-38 + call $~lib/math/NativeMathf.sin f32.const 2.3509880009953429e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42465,9 +43540,10 @@ unreachable end f32.const 2.350988701644575e-38 + call $~lib/math/NativeMathf.sin f32.const 2.350988701644575e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42478,9 +43554,10 @@ unreachable end f32.const 2.3509895424236536e-38 + call $~lib/math/NativeMathf.sin f32.const 2.3509895424236536e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42491,9 +43568,10 @@ unreachable end f32.const 4.70197740328915e-38 + call $~lib/math/NativeMathf.sin f32.const 4.70197740328915e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42504,9 +43582,10 @@ unreachable end f32.const 1.1175870895385742e-08 + call $~lib/math/NativeMathf.sin f32.const 1.1175870895385742e-08 f32.const 2.6193447411060333e-10 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42517,9 +43596,10 @@ unreachable end f32.const 1.4901161193847656e-08 + call $~lib/math/NativeMathf.sin f32.const 1.4901161193847656e-08 f32.const 3.1044086745701804e-10 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42530,9 +43610,10 @@ unreachable end f32.const 0.000244140625 + call $~lib/math/NativeMathf.sin f32.const 0.000244140625 f32.const 0.0833333358168602 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42543,9 +43624,10 @@ unreachable end f32.const 0.0003662109375 + call $~lib/math/NativeMathf.sin f32.const 0.0003662109375 f32.const 0.28125 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42556,9 +43638,10 @@ unreachable end f32.const -1.175494490952134e-38 + call $~lib/math/NativeMathf.sin f32.const -1.175494490952134e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42569,9 +43652,10 @@ unreachable end f32.const -1.1754946310819804e-38 + call $~lib/math/NativeMathf.sin f32.const -1.1754946310819804e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42582,9 +43666,10 @@ unreachable end f32.const -2.3509880009953429e-38 + call $~lib/math/NativeMathf.sin f32.const -2.3509880009953429e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42595,9 +43680,10 @@ unreachable end f32.const -2.350988701644575e-38 + call $~lib/math/NativeMathf.sin f32.const -2.350988701644575e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42608,9 +43694,10 @@ unreachable end f32.const -2.3509895424236536e-38 + call $~lib/math/NativeMathf.sin f32.const -2.3509895424236536e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42621,9 +43708,10 @@ unreachable end f32.const -4.70197740328915e-38 + call $~lib/math/NativeMathf.sin f32.const -4.70197740328915e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42634,9 +43722,10 @@ unreachable end f32.const -1.1175870895385742e-08 + call $~lib/math/NativeMathf.sin f32.const -1.1175870895385742e-08 f32.const -2.6193447411060333e-10 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42647,9 +43736,10 @@ unreachable end f32.const -1.4901161193847656e-08 + call $~lib/math/NativeMathf.sin f32.const -1.4901161193847656e-08 f32.const -3.1044086745701804e-10 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42660,9 +43750,10 @@ unreachable end f32.const -0.000244140625 + call $~lib/math/NativeMathf.sin f32.const -0.000244140625 f32.const -0.0833333358168602 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42673,9 +43764,10 @@ unreachable end f32.const -0.0003662109375 + call $~lib/math/NativeMathf.sin f32.const -0.0003662109375 f32.const -0.28125 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42686,9 +43778,10 @@ unreachable end f32.const 2.802596928649634e-45 + call $~lib/math/NativeMathf.sin f32.const 2.802596928649634e-45 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42699,9 +43792,10 @@ unreachable end f32.const 1.2611686178923354e-44 + call $~lib/math/NativeMathf.sin f32.const 1.2611686178923354e-44 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42712,9 +43806,10 @@ unreachable end f32.const 2.938735877055719e-39 + call $~lib/math/NativeMathf.sin f32.const 2.938735877055719e-39 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42725,9 +43820,10 @@ unreachable end f32.const 5.877471754111438e-39 + call $~lib/math/NativeMathf.sin f32.const 5.877471754111438e-39 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42738,9 +43834,10 @@ unreachable end f32.const 1.1754940705625946e-38 + call $~lib/math/NativeMathf.sin f32.const 1.1754940705625946e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42751,9 +43848,10 @@ unreachable end f32.const 1.1754942106924411e-38 + call $~lib/math/NativeMathf.sin f32.const 1.1754942106924411e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42764,9 +43862,10 @@ unreachable end f32.const -2.802596928649634e-45 + call $~lib/math/NativeMathf.sin f32.const -2.802596928649634e-45 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42777,9 +43876,10 @@ unreachable end f32.const -1.2611686178923354e-44 + call $~lib/math/NativeMathf.sin f32.const -1.2611686178923354e-44 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42790,9 +43890,10 @@ unreachable end f32.const -2.938735877055719e-39 + call $~lib/math/NativeMathf.sin f32.const -2.938735877055719e-39 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42803,9 +43904,10 @@ unreachable end f32.const -5.877471754111438e-39 + call $~lib/math/NativeMathf.sin f32.const -5.877471754111438e-39 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42816,9 +43918,10 @@ unreachable end f32.const -1.1754940705625946e-38 + call $~lib/math/NativeMathf.sin f32.const -1.1754940705625946e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42829,9 +43932,10 @@ unreachable end f32.const -1.1754942106924411e-38 + call $~lib/math/NativeMathf.sin f32.const -1.1754942106924411e-38 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42842,9 +43946,10 @@ unreachable end f32.const 255.99993896484375 + call $~lib/math/NativeMathf.sin f32.const -0.9992055892944336 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42855,9 +43960,10 @@ unreachable end f32.const 5033165 + call $~lib/math/NativeMathf.sin f32.const 0.5312945246696472 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42868,9 +43974,10 @@ unreachable end f32.const 421657440 + call $~lib/math/NativeMathf.sin f32.const -0.7397398948669434 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42881,9 +43988,10 @@ unreachable end f32.const 2147483392 + call $~lib/math/NativeMathf.sin f32.const 0.2762770354747772 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42894,9 +44002,10 @@ unreachable end f32.const 68719476736 + call $~lib/math/NativeMathf.sin f32.const 0.9855440855026245 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42907,9 +44016,10 @@ unreachable end f32.const 549755813888 + call $~lib/math/NativeMathf.sin f32.const -0.9782648086547852 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42920,9 +44030,10 @@ unreachable end f32.const 3402823466385288598117041e14 + call $~lib/math/NativeMathf.sin f32.const -0.5218765139579773 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42933,9 +44044,10 @@ unreachable end f32.const -255.99993896484375 + call $~lib/math/NativeMathf.sin f32.const 0.9992055892944336 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42946,9 +44058,10 @@ unreachable end f32.const -5033165 + call $~lib/math/NativeMathf.sin f32.const -0.5312945246696472 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42959,9 +44072,10 @@ unreachable end f32.const -421657440 + call $~lib/math/NativeMathf.sin f32.const 0.7397398948669434 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42972,9 +44086,10 @@ unreachable end f32.const -2147483392 + call $~lib/math/NativeMathf.sin f32.const -0.2762770354747772 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42985,9 +44100,10 @@ unreachable end f32.const -68719476736 + call $~lib/math/NativeMathf.sin f32.const -0.9855440855026245 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -42998,9 +44114,10 @@ unreachable end f32.const -549755813888 + call $~lib/math/NativeMathf.sin f32.const 0.9782648086547852 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -43011,9 +44128,10 @@ unreachable end f32.const -3402823466385288598117041e14 + call $~lib/math/NativeMathf.sin f32.const 0.5218765139579773 f32.const 0 - call $std/math/test_sinf + call $std/math/check i32.eqz if i32.const 0 @@ -43219,9 +44337,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.sinh f32.const -1593.521240234375 f32.const 0.1671663224697113 - call $std/math/test_sinhf + call $std/math/check i32.eqz if i32.const 0 @@ -43232,9 +44351,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.sinh f32.const 38.548770904541016 f32.const -0.49340328574180603 - call $std/math/test_sinhf + call $std/math/check i32.eqz if i32.const 0 @@ -43245,9 +44365,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.sinh f32.const -2182.630859375 f32.const 0.0849970355629921 - call $std/math/test_sinhf + call $std/math/check i32.eqz if i32.const 0 @@ -43258,9 +44379,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.sinh f32.const -343.2723388671875 f32.const 0.0704190656542778 - call $std/math/test_sinhf + call $std/math/check i32.eqz if i32.const 0 @@ -43271,9 +44393,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.sinh f32.const 5291.78125 f32.const -0.44362515211105347 - call $std/math/test_sinhf + call $std/math/check i32.eqz if i32.const 0 @@ -43284,9 +44407,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.sinh f32.const 0.7114062309265137 f32.const 0.058103885501623154 - call $std/math/test_sinhf + call $std/math/check i32.eqz if i32.const 0 @@ -43297,9 +44421,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.sinh f32.const -0.4179006516933441 f32.const 0.39349499344825745 - call $std/math/test_sinhf + call $std/math/check i32.eqz if i32.const 0 @@ -43310,9 +44435,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.sinh f32.const 0.5917755961418152 f32.const -0.4183797240257263 - call $std/math/test_sinhf + call $std/math/check i32.eqz if i32.const 0 @@ -43323,9 +44449,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.sinh f32.const 0.8538292050361633 f32.const 0.45992106199264526 - call $std/math/test_sinhf + call $std/math/check i32.eqz if i32.const 0 @@ -43336,9 +44463,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.sinh f32.const -0.7320976257324219 f32.const -0.48159059882164 - call $std/math/test_sinhf + call $std/math/check i32.eqz if i32.const 0 @@ -43349,9 +44477,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.sinh f32.const 0 f32.const 0 - call $std/math/test_sinhf + call $std/math/check i32.eqz if i32.const 0 @@ -43362,9 +44491,10 @@ unreachable end f32.const -0 + call $~lib/math/NativeMathf.sinh f32.const -0 f32.const 0 - call $std/math/test_sinhf + call $std/math/check i32.eqz if i32.const 0 @@ -43375,9 +44505,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.sinh f32.const inf f32.const 0 - call $std/math/test_sinhf + call $std/math/check i32.eqz if i32.const 0 @@ -43388,9 +44519,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.sinh f32.const -inf f32.const 0 - call $std/math/test_sinhf + call $std/math/check i32.eqz if i32.const 0 @@ -43401,9 +44533,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.sinh f32.const nan:0x400000 f32.const 0 - call $std/math/test_sinhf + call $std/math/check i32.eqz if i32.const 0 @@ -44505,10 +45638,10 @@ call $~lib/builtins/abort unreachable end - f32.const -8.066848754882812 + f32.const -nan:0x400000 f32.const nan:0x400000 f32.const 0 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44518,10 +45651,10 @@ call $~lib/builtins/abort unreachable end - f32.const 4.345239639282227 + f32.const 2.084523916244507 f32.const 2.084523916244507 f32.const 0.3200402557849884 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44531,10 +45664,10 @@ call $~lib/builtins/abort unreachable end - f32.const -8.381433486938477 + f32.const -nan:0x400000 f32.const nan:0x400000 f32.const 0 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44544,10 +45677,10 @@ call $~lib/builtins/abort unreachable end - f32.const -6.531673431396484 + f32.const -nan:0x400000 f32.const nan:0x400000 f32.const 0 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44557,10 +45690,10 @@ call $~lib/builtins/abort unreachable end - f32.const 9.267057418823242 + f32.const 3.0441842079162598 f32.const 3.0441842079162598 f32.const 0.05022354796528816 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44570,10 +45703,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.6619858741760254 + f32.const 0.813625156879425 f32.const 0.813625156879425 f32.const 0.2240506112575531 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44583,10 +45716,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.40660393238067627 + f32.const -nan:0x400000 f32.const nan:0x400000 f32.const 0 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44596,10 +45729,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.5617597699165344 + f32.const 0.7495063543319702 f32.const 0.7495063543319702 f32.const 0.05895441770553589 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44609,10 +45742,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.7741522789001465 + f32.const 0.879859209060669 f32.const 0.879859209060669 f32.const -0.4874873757362366 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44622,10 +45755,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.6787636876106262 + f32.const -nan:0x400000 f32.const nan:0x400000 f32.const 0 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44638,7 +45771,7 @@ f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44651,7 +45784,7 @@ f32.const inf f32.const inf f32.const 0 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44661,10 +45794,10 @@ call $~lib/builtins/abort unreachable end - f32.const -inf + f32.const -nan:0x400000 f32.const nan:0x400000 f32.const 0 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44677,7 +45810,7 @@ f32.const 0 f32.const 0 f32.const 0 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44690,7 +45823,7 @@ f32.const -0 f32.const -0 f32.const 0 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44703,7 +45836,7 @@ f32.const 1 f32.const 1 f32.const 0 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44713,10 +45846,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1 + f32.const -nan:0x400000 f32.const nan:0x400000 f32.const 0 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44726,10 +45859,10 @@ call $~lib/builtins/abort unreachable end - f32.const 4 + f32.const 2 f32.const 2 f32.const 0 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44739,10 +45872,10 @@ call $~lib/builtins/abort unreachable end - f32.const 2.802596928649634e-45 + f32.const 5.293955920339377e-23 f32.const 5.293955920339377e-23 f32.const 0 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44752,10 +45885,10 @@ call $~lib/builtins/abort unreachable end - f32.const 4.203895392974451e-45 + f32.const 6.483745598763743e-23 f32.const 6.483745598763743e-23 f32.const 0.37388554215431213 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44765,10 +45898,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1.401298464324817e-45 + f32.const 3.743392066509216e-23 f32.const 3.743392066509216e-23 f32.const -0.20303145051002502 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44778,10 +45911,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1.401298464324817e-45 + f32.const -nan:0x400000 f32.const nan:0x400000 f32.const 0 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44791,10 +45924,10 @@ call $~lib/builtins/abort unreachable end - f32.const 3402823466385288598117041e14 + f32.const 18446742974197923840 f32.const 18446742974197923840 f32.const -0.5 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44804,10 +45937,10 @@ call $~lib/builtins/abort unreachable end - f32.const -3402823466385288598117041e14 + f32.const -nan:0x400000 f32.const nan:0x400000 f32.const 0 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44817,10 +45950,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.9999998807907104 + f32.const 0.9999999403953552 f32.const 0.9999999403953552 f32.const 2.980232594040899e-08 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44833,7 +45966,7 @@ f32.const 0.9999999403953552 f32.const 0.9999999403953552 f32.const -0.5 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44843,10 +45976,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1.999999761581421 + f32.const 1.4142134189605713 f32.const 1.4142134189605713 f32.const -0.4959246516227722 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44856,10 +45989,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1.9999998807907104 + f32.const 1.4142135381698608 f32.const 1.4142135381698608 f32.const 0.15052194893360138 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44869,10 +46002,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1.0000001192092896 + f32.const 1 f32.const 1 f32.const -0.5 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44882,10 +46015,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1.000000238418579 + f32.const 1.0000001192092896 f32.const 1.0000001192092896 f32.const 5.960463766996327e-08 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44895,10 +46028,10 @@ call $~lib/builtins/abort unreachable end - f32.const 2.000000238418579 + f32.const 1.4142136573791504 f32.const 1.4142136573791504 f32.const 0.08986179530620575 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -44908,10 +46041,10 @@ call $~lib/builtins/abort unreachable end - f32.const 2.000000476837158 + f32.const 1.41421377658844 f32.const 1.41421377658844 f32.const 0.3827550709247589 - call $std/math/test_sqrtf + call $std/math/check i32.eqz if i32.const 0 @@ -45819,9 +46952,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.tan f32.const 4.626595497131348 f32.const 0.2455666959285736 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -45832,9 +46966,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.tan f32.const 2.6001901626586914 f32.const 0.3652407228946686 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -45845,9 +46980,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.tan f32.const 1.716740608215332 f32.const 0.08169349282979965 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -45858,9 +46994,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.tan f32.const -0.2537320852279663 f32.const 0.23186513781547546 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -45871,9 +47008,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.tan f32.const -0.15904149413108826 f32.const -0.009332014247775078 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -45884,9 +47022,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.tan f32.const 0.7792918682098389 f32.const -0.06759700924158096 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -45897,9 +47036,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.tan f32.const -0.43059954047203064 f32.const 0.005771996453404427 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -45910,9 +47050,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.tan f32.const 0.6294037103652954 f32.const -0.16838163137435913 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -45923,9 +47064,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.tan f32.const 0.977757453918457 f32.const 0.38969388604164124 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -45936,9 +47078,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.tan f32.const -0.8066186308860779 f32.const 0.12294059991836548 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -45949,9 +47092,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.tan f32.const 0 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -45962,9 +47106,10 @@ unreachable end f32.const -0 + call $~lib/math/NativeMathf.tan f32.const -0 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -45975,9 +47120,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.tan f32.const nan:0x400000 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -45988,9 +47134,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.tan f32.const nan:0x400000 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46001,9 +47148,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.tan f32.const nan:0x400000 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46014,9 +47162,10 @@ unreachable end f32.const 1.862645149230957e-09 + call $~lib/math/NativeMathf.tan f32.const 1.862645149230957e-09 f32.const -9.701277108031814e-12 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46027,9 +47176,10 @@ unreachable end f32.const -1.862645149230957e-09 + call $~lib/math/NativeMathf.tan f32.const -1.862645149230957e-09 f32.const 9.701277108031814e-12 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46040,9 +47190,10 @@ unreachable end f32.const 1.1754943508222875e-38 + call $~lib/math/NativeMathf.tan f32.const 1.1754943508222875e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46053,9 +47204,10 @@ unreachable end f32.const -1.1754943508222875e-38 + call $~lib/math/NativeMathf.tan f32.const -1.1754943508222875e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46066,9 +47218,10 @@ unreachable end f32.const 1.401298464324817e-45 + call $~lib/math/NativeMathf.tan f32.const 1.401298464324817e-45 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46079,9 +47232,10 @@ unreachable end f32.const -1.401298464324817e-45 + call $~lib/math/NativeMathf.tan f32.const -1.401298464324817e-45 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46092,9 +47246,10 @@ unreachable end f32.const 1.175494490952134e-38 + call $~lib/math/NativeMathf.tan f32.const 1.175494490952134e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46105,9 +47260,10 @@ unreachable end f32.const 1.1754946310819804e-38 + call $~lib/math/NativeMathf.tan f32.const 1.1754946310819804e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46118,9 +47274,10 @@ unreachable end f32.const 2.3509880009953429e-38 + call $~lib/math/NativeMathf.tan f32.const 2.3509880009953429e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46131,9 +47288,10 @@ unreachable end f32.const 2.350988701644575e-38 + call $~lib/math/NativeMathf.tan f32.const 2.350988701644575e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46144,9 +47302,10 @@ unreachable end f32.const 2.3509895424236536e-38 + call $~lib/math/NativeMathf.tan f32.const 2.3509895424236536e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46157,9 +47316,10 @@ unreachable end f32.const 4.70197740328915e-38 + call $~lib/math/NativeMathf.tan f32.const 4.70197740328915e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46170,9 +47330,10 @@ unreachable end f32.const 1.1175870895385742e-08 + call $~lib/math/NativeMathf.tan f32.const 1.1175870895385742e-08 f32.const -5.238689482212067e-10 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46183,9 +47344,10 @@ unreachable end f32.const 1.4901161193847656e-08 + call $~lib/math/NativeMathf.tan f32.const 1.4901161193847656e-08 f32.const -6.208817349140361e-10 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46196,9 +47358,10 @@ unreachable end f32.const 0.000244140625 + call $~lib/math/NativeMathf.tan f32.const 0.000244140625 f32.const -0.1666666716337204 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46209,9 +47372,10 @@ unreachable end f32.const -1.175494490952134e-38 + call $~lib/math/NativeMathf.tan f32.const -1.175494490952134e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46222,9 +47386,10 @@ unreachable end f32.const -1.1754946310819804e-38 + call $~lib/math/NativeMathf.tan f32.const -1.1754946310819804e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46235,9 +47400,10 @@ unreachable end f32.const -2.3509880009953429e-38 + call $~lib/math/NativeMathf.tan f32.const -2.3509880009953429e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46248,9 +47414,10 @@ unreachable end f32.const 2.350988701644575e-38 + call $~lib/math/NativeMathf.tan f32.const 2.350988701644575e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46261,9 +47428,10 @@ unreachable end f32.const -2.3509895424236536e-38 + call $~lib/math/NativeMathf.tan f32.const -2.3509895424236536e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46274,9 +47442,10 @@ unreachable end f32.const -4.70197740328915e-38 + call $~lib/math/NativeMathf.tan f32.const -4.70197740328915e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46287,9 +47456,10 @@ unreachable end f32.const -1.1175870895385742e-08 + call $~lib/math/NativeMathf.tan f32.const -1.1175870895385742e-08 f32.const 5.238689482212067e-10 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46300,9 +47470,10 @@ unreachable end f32.const -1.4901161193847656e-08 + call $~lib/math/NativeMathf.tan f32.const -1.4901161193847656e-08 f32.const 6.208817349140361e-10 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46313,9 +47484,10 @@ unreachable end f32.const -0.000244140625 + call $~lib/math/NativeMathf.tan f32.const -0.000244140625 f32.const 0.1666666716337204 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46326,9 +47498,10 @@ unreachable end f32.const 2.802596928649634e-45 + call $~lib/math/NativeMathf.tan f32.const 2.802596928649634e-45 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46339,9 +47512,10 @@ unreachable end f32.const 1.2611686178923354e-44 + call $~lib/math/NativeMathf.tan f32.const 1.2611686178923354e-44 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46352,9 +47526,10 @@ unreachable end f32.const 2.938735877055719e-39 + call $~lib/math/NativeMathf.tan f32.const 2.938735877055719e-39 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46365,9 +47540,10 @@ unreachable end f32.const 5.877471754111438e-39 + call $~lib/math/NativeMathf.tan f32.const 5.877471754111438e-39 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46378,9 +47554,10 @@ unreachable end f32.const 1.1754940705625946e-38 + call $~lib/math/NativeMathf.tan f32.const 1.1754940705625946e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46391,9 +47568,10 @@ unreachable end f32.const 1.1754942106924411e-38 + call $~lib/math/NativeMathf.tan f32.const 1.1754942106924411e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46404,9 +47582,10 @@ unreachable end f32.const -2.802596928649634e-45 + call $~lib/math/NativeMathf.tan f32.const -2.802596928649634e-45 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46417,9 +47596,10 @@ unreachable end f32.const -1.2611686178923354e-44 + call $~lib/math/NativeMathf.tan f32.const -1.2611686178923354e-44 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46430,9 +47610,10 @@ unreachable end f32.const -2.938735877055719e-39 + call $~lib/math/NativeMathf.tan f32.const -2.938735877055719e-39 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46443,9 +47624,10 @@ unreachable end f32.const -5.877471754111438e-39 + call $~lib/math/NativeMathf.tan f32.const -5.877471754111438e-39 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46456,9 +47638,10 @@ unreachable end f32.const -1.1754940705625946e-38 + call $~lib/math/NativeMathf.tan f32.const -1.1754940705625946e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -46469,9 +47652,10 @@ unreachable end f32.const -1.1754942106924411e-38 + call $~lib/math/NativeMathf.tan f32.const -1.1754942106924411e-38 f32.const 0 - call $std/math/test_tanf + call $std/math/check i32.eqz if i32.const 0 @@ -47171,9 +48355,10 @@ call $~lib/builtins/abort unreachable end - f32.const -8.066848754882812 f32.const -8 - call $std/math/test_truncf + f32.const -8 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47183,9 +48368,10 @@ call $~lib/builtins/abort unreachable end - f32.const 4.345239639282227 f32.const 4 - call $std/math/test_truncf + f32.const 4 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47195,9 +48381,10 @@ call $~lib/builtins/abort unreachable end - f32.const -8.381433486938477 f32.const -8 - call $std/math/test_truncf + f32.const -8 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47207,9 +48394,10 @@ call $~lib/builtins/abort unreachable end - f32.const -6.531673431396484 f32.const -6 - call $std/math/test_truncf + f32.const -6 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47219,9 +48407,10 @@ call $~lib/builtins/abort unreachable end - f32.const 9.267057418823242 f32.const 9 - call $std/math/test_truncf + f32.const 9 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47231,9 +48420,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.6619858741760254 f32.const 0 - call $std/math/test_truncf + f32.const 0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47243,9 +48433,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.40660393238067627 f32.const -0 - call $std/math/test_truncf + f32.const -0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47255,9 +48446,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.5617597699165344 f32.const 0 - call $std/math/test_truncf + f32.const 0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47267,9 +48459,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.7741522789001465 f32.const 0 - call $std/math/test_truncf + f32.const 0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47279,9 +48472,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.6787636876106262 f32.const -0 - call $std/math/test_truncf + f32.const -0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47293,7 +48487,8 @@ end f32.const nan:0x400000 f32.const nan:0x400000 - call $std/math/test_truncf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47305,7 +48500,8 @@ end f32.const inf f32.const inf - call $std/math/test_truncf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47317,7 +48513,8 @@ end f32.const -inf f32.const -inf - call $std/math/test_truncf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47329,7 +48526,8 @@ end f32.const 0 f32.const 0 - call $std/math/test_truncf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47341,7 +48539,8 @@ end f32.const -0 f32.const -0 - call $std/math/test_truncf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47353,7 +48552,8 @@ end f32.const 1 f32.const 1 - call $std/math/test_truncf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47365,7 +48565,8 @@ end f32.const -1 f32.const -1 - call $std/math/test_truncf + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47375,9 +48576,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.5 f32.const 0 - call $std/math/test_truncf + f32.const 0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47387,9 +48589,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.5 f32.const -0 - call $std/math/test_truncf + f32.const -0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47399,9 +48602,10 @@ call $~lib/builtins/abort unreachable end - f32.const 1.0000152587890625 f32.const 1 - call $std/math/test_truncf + f32.const 1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47411,9 +48615,10 @@ call $~lib/builtins/abort unreachable end - f32.const -1.0000152587890625 f32.const -1 - call $std/math/test_truncf + f32.const -1 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47423,9 +48628,10 @@ call $~lib/builtins/abort unreachable end - f32.const 0.9999923706054688 f32.const 0 - call $std/math/test_truncf + f32.const 0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47435,9 +48641,10 @@ call $~lib/builtins/abort unreachable end - f32.const -0.9999923706054688 f32.const -0 - call $std/math/test_truncf + f32.const -0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47447,9 +48654,10 @@ call $~lib/builtins/abort unreachable end - f32.const 7.888609052210118e-31 f32.const 0 - call $std/math/test_truncf + f32.const 0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 @@ -47459,9 +48667,10 @@ call $~lib/builtins/abort unreachable end - f32.const -7.888609052210118e-31 f32.const -0 - call $std/math/test_truncf + f32.const -0 + f32.const 0 + call $std/math/check i32.eqz if i32.const 0 diff --git a/tests/compiler/std/object.optimized.wat b/tests/compiler/std/object.optimized.wat index 856757bab1..579007c0b7 100644 --- a/tests/compiler/std/object.optimized.wat +++ b/tests/compiler/std/object.optimized.wat @@ -2,7 +2,6 @@ (type $none_=>_none (func)) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) @@ -64,14 +63,6 @@ i32.ne i32.eq ) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.const 1 - i32.shr_u - ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -148,38 +139,45 @@ end i32.const 0 ) - (func $~lib/object/Object.is<~lib/string/String> (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - block $__inlined_func$~lib/string/String.__eq (result i32) + local.get $0 + local.get $1 + i32.eq + 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 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $2 local.get $1 - i32.eq - br_if $__inlined_func$~lib/string/String.__eq - drop - 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 - br $__inlined_func$~lib/string/String.__eq - end - i32.const 0 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + local.get $0 + local.get $1 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + return end + i32.const 0 ) (func $start:std/object f64.const 0 @@ -562,7 +560,7 @@ end i32.const 1088 i32.const 1088 - call $~lib/object/Object.is<~lib/string/String> + call $~lib/string/String.__eq i32.const 1 i32.ne if @@ -575,7 +573,7 @@ end i32.const 1088 i32.const 1120 - call $~lib/object/Object.is<~lib/string/String> + call $~lib/string/String.__eq if i32.const 0 i32.const 1040 @@ -586,7 +584,7 @@ end i32.const 1088 i32.const 1152 - call $~lib/object/Object.is<~lib/string/String> + call $~lib/string/String.__eq if i32.const 0 i32.const 1040 @@ -597,7 +595,7 @@ end i32.const 0 i32.const 0 - call $~lib/object/Object.is<~lib/string/String> + call $~lib/string/String.__eq i32.const 1 i32.ne if @@ -610,7 +608,7 @@ end i32.const 1184 i32.const 0 - call $~lib/object/Object.is<~lib/string/String> + call $~lib/string/String.__eq if i32.const 0 i32.const 1040 @@ -621,7 +619,7 @@ end i32.const 0 i32.const 1184 - call $~lib/object/Object.is<~lib/string/String> + call $~lib/string/String.__eq if i32.const 0 i32.const 1040 diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index 49e1f223da..487b81017a 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -1075,13 +1075,11 @@ global.set $std/operator-overloading/excl global.get $std/operator-overloading/excl local.tee $0 - local.set $1 - local.get $0 i32.load if (result i32) i32.const 0 else - local.get $1 + local.get $0 i32.load offset=4 i32.eqz end @@ -1122,12 +1120,10 @@ global.set $std/operator-overloading/incdec global.get $std/operator-overloading/incdec local.tee $0 + local.get $0 i32.load i32.const 1 i32.add - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 local.get $0 @@ -1160,12 +1156,10 @@ end global.get $std/operator-overloading/incdec local.tee $0 + local.get $0 i32.load i32.const 1 i32.sub - local.set $1 - local.get $0 - local.get $1 i32.store local.get $0 local.get $0 diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index efcadc7858..da7d47a7a3 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -1,7 +1,7 @@ (module (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_none (func)) (type $none_=>_i32 (func (result i32))) (type $i32_=>_none (func (param i32))) @@ -1050,14 +1050,6 @@ call $~lib/rt/rtrace/onalloc local.get $3 ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) (func $~lib/rt/pure/__retain (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -1291,9 +1283,12 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 local.get $0 call $~lib/memory/memory.fill @@ -1302,9 +1297,12 @@ ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 3 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $0 i32.const 16 @@ -1328,13 +1326,6 @@ i32.store offset=20 local.get $0 ) - (func $~lib/util/hash/hash8 (param $0 i32) (result i32) - local.get $0 - i32.const -2128831035 - i32.xor - i32.const 16777619 - i32.mul - ) (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.load @@ -1386,7 +1377,10 @@ i32.shl i32.const 24 i32.shr_s - call $~lib/util/hash/hash8 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul call $~lib/set/Set#find i32.const 0 i32.ne @@ -1402,62 +1396,64 @@ local.get $1 i32.const 1 i32.add - local.tee $4 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $6 - local.get $4 + local.set $5 + local.get $3 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $6 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $3 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $4 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $8 - local.get $4 + local.set $7 + local.get $3 local.set $2 loop $while-continue|0 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.ne if - local.get $5 - local.tee $3 + local.get $4 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $3 + local.get $4 i32.load8_s i32.store8 local.get $2 - local.get $6 - local.get $3 - i32.load8_s - call $~lib/util/hash/hash8 + local.get $5 local.get $1 + local.get $4 + i32.load8_s + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul i32.and i32.const 2 i32.shl i32.add - local.tee $3 + local.tee $8 i32.load i32.store offset=4 - local.get $3 + local.get $8 local.get $2 i32.store local.get $2 @@ -1465,73 +1461,78 @@ i32.add local.set $2 end - local.get $5 + local.get $4 i32.const 8 i32.add - local.set $5 + local.set $4 br $while-continue|0 end end - local.get $6 - local.tee $3 + local.get $5 + local.tee $4 local.get $0 i32.load local.tee $2 i32.ne if - local.get $3 + local.get $4 call $~lib/rt/pure/__retain - local.set $3 + local.set $4 local.get $2 call $~lib/rt/pure/__release end local.get $0 - local.get $3 + local.get $4 i32.store local.get $0 local.get $1 i32.store offset=4 - local.get $4 + local.get $3 local.tee $1 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 i32.ne if local.get $1 call $~lib/rt/pure/__retain local.set $1 - local.get $3 + local.get $4 call $~lib/rt/pure/__release end local.get $0 local.get $1 i32.store offset=8 local.get $0 - local.get $7 + local.get $6 i32.store offset=12 local.get $0 local.get $0 i32.load offset=20 i32.store offset=16 - local.get $6 + local.get $5 call $~lib/rt/pure/__release - local.get $4 + local.get $3 call $~lib/rt/pure/__release ) (func $~lib/set/Set#add (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 - local.get $1 local.get $1 i32.const 24 i32.shl i32.const 24 i32.shr_s - call $~lib/util/hash/hash8 - local.tee $3 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + local.tee $2 + local.set $3 + local.get $0 + local.get $1 + local.get $2 call $~lib/set/Set#find i32.eqz if @@ -1606,6 +1607,78 @@ local.get $0 call $~lib/rt/pure/__retain ) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + call $~lib/rt/tlsf/maybeInitialize + i32.const 16 + i32.const 4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain + local.tee $4 + i32.const 0 + i32.store + local.get $4 + i32.const 0 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=8 + local.get $4 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 1073741808 + i32.gt_u + if + i32.const 1200 + i32.const 1360 + i32.const 57 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + call $~lib/rt/tlsf/maybeInitialize + local.get $0 + i32.const 0 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $0 + call $~lib/memory/memory.fill + local.get $2 + local.set $1 + local.get $2 + local.get $4 + i32.load + local.tee $3 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $3 + call $~lib/rt/pure/__release + end + local.get $4 + local.get $1 + i32.store + local.get $4 + local.get $2 + i32.store offset=4 + local.get $4 + local.get $0 + i32.store offset=8 + local.get $4 + local.get $0 + i32.store offset=12 + local.get $4 + ) (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) @@ -2042,160 +2115,50 @@ local.get $1 i32.store offset=12 ) - (func $~lib/set/Set#values (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - i32.load offset=8 - local.set $6 - local.get $0 - i32.load offset=16 - local.tee $7 - local.set $4 - i32.const 16 - i32.const 4 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 local.get $0 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 1073741808 - i32.gt_u + i32.load offset=12 + i32.ge_u if - i32.const 1200 + i32.const 1408 i32.const 1360 - i32.const 57 - i32.const 60 + i32.const 104 + i32.const 42 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $4 - call $~lib/memory/memory.fill - local.get $2 - local.set $3 - local.get $2 local.get $0 - i32.load - local.tee $8 - i32.ne + i32.load offset=4 + local.get $1 + i32.add + i32.load8_s + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + local.get $1 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + call $~lib/set/Set#find + local.tee $1 + i32.eqz if - local.get $3 - call $~lib/rt/pure/__retain - local.set $3 - local.get $8 - call $~lib/rt/pure/__release + return end - local.get $0 - local.get $3 - i32.store - local.get $0 - local.get $2 - i32.store offset=4 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - i32.store offset=12 - loop $for-loop|0 - local.get $5 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $5 - i32.const 3 - i32.shl - i32.add - local.tee $2 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - local.get $1 - local.get $2 - i32.load8_s - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - call $~lib/array/Array#set:length - local.get $0 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1408 - i32.const 1360 - i32.const 104 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.load8_s - ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - local.get $1 - local.get $1 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/util/hash/hash8 - call $~lib/set/Set#find - local.tee $1 - i32.eqz - if - return - end - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 local.get $0 local.get $0 i32.load offset=20 @@ -2275,10 +2238,14 @@ (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) call $~lib/set/Set#constructor - local.set $0 + local.set $1 loop $for-loop|1 - local.get $2 + local.get $3 i32.const 24 i32.shl i32.const 24 @@ -2286,8 +2253,8 @@ i32.const 100 i32.lt_s if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -2297,12 +2264,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -2313,14 +2280,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|1 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -2333,9 +2300,9 @@ unreachable end i32.const 50 - local.set $2 + local.set $3 loop $for-loop|3 - local.get $2 + local.get $3 i32.const 24 i32.shl i32.const 24 @@ -2343,8 +2310,8 @@ i32.const 100 i32.lt_s if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -2355,12 +2322,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -2371,14 +2338,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|3 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -2390,20 +2357,61 @@ call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=16 + local.tee $6 + call $~lib/array/Array#constructor + local.set $3 + loop $for-loop|0 + local.get $4 + local.get $6 + i32.lt_s + if + local.get $5 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $0 + local.get $7 + i32.load8_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 local.get $0 - call $~lib/set/Set#values - local.set $2 + call $~lib/array/Array#set:length call $~lib/set/Set#constructor - local.set $3 + local.set $0 loop $for-loop|4 - local.get $1 local.get $2 + local.get $3 i32.load offset=12 i32.lt_s if - local.get $0 - local.get $2 local.get $1 + local.get $3 + local.get $2 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -2415,23 +2423,23 @@ call $~lib/builtins/abort unreachable end + local.get $0 local.get $3 local.get $2 - local.get $1 call $~lib/array/Array#__get call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|4 end end - local.get $3 - i32.load offset=20 local.get $0 i32.load offset=20 + local.get $1 + i32.load offset=20 i32.ne if i32.const 0 @@ -2442,9 +2450,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|6 - local.get $1 + local.get $2 i32.const 24 i32.shl i32.const 24 @@ -2452,8 +2460,8 @@ i32.const 50 i32.lt_s if - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -2464,11 +2472,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#delete - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -2478,14 +2486,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|6 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -2498,9 +2506,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|8 - local.get $1 + local.get $2 i32.const 24 i32.shl i32.const 24 @@ -2508,8 +2516,8 @@ i32.const 50 i32.lt_s if - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -2519,12 +2527,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -2535,11 +2543,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#delete - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -2549,14 +2557,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|8 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -2568,9 +2576,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/set/Set#clear - local.get $0 + local.get $1 i32.load offset=20 if i32.const 0 @@ -2580,18 +2588,21 @@ call $~lib/builtins/abort unreachable end - local.get $2 - call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 5 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $0 i32.const 16 @@ -2621,7 +2632,10 @@ local.get $1 i32.const 255 i32.and - call $~lib/util/hash/hash8 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul call $~lib/set/Set#find i32.const 0 i32.ne @@ -2637,62 +2651,64 @@ local.get $1 i32.const 1 i32.add - local.tee $4 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $6 - local.get $4 + local.set $5 + local.get $3 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $6 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $3 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $4 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $8 - local.get $4 + local.set $7 + local.get $3 local.set $2 loop $while-continue|0 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.ne if - local.get $5 - local.tee $3 + local.get $4 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $3 + local.get $4 i32.load8_u i32.store8 local.get $2 - local.get $6 - local.get $3 - i32.load8_u - call $~lib/util/hash/hash8 + local.get $5 local.get $1 + local.get $4 + i32.load8_u + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul i32.and i32.const 2 i32.shl i32.add - local.tee $3 + local.tee $8 i32.load i32.store offset=4 - local.get $3 + local.get $8 local.get $2 i32.store local.get $2 @@ -2700,71 +2716,76 @@ i32.add local.set $2 end - local.get $5 + local.get $4 i32.const 8 i32.add - local.set $5 + local.set $4 br $while-continue|0 end end - local.get $6 - local.tee $3 + local.get $5 + local.tee $4 local.get $0 i32.load local.tee $2 i32.ne if - local.get $3 + local.get $4 call $~lib/rt/pure/__retain - local.set $3 + local.set $4 local.get $2 call $~lib/rt/pure/__release end local.get $0 - local.get $3 + local.get $4 i32.store local.get $0 local.get $1 i32.store offset=4 - local.get $4 + local.get $3 local.tee $1 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 i32.ne if local.get $1 call $~lib/rt/pure/__retain local.set $1 - local.get $3 + local.get $4 call $~lib/rt/pure/__release end local.get $0 local.get $1 i32.store offset=8 local.get $0 - local.get $7 + local.get $6 i32.store offset=12 local.get $0 local.get $0 i32.load offset=20 i32.store offset=16 - local.get $6 + local.get $5 call $~lib/rt/pure/__release - local.get $4 + local.get $3 call $~lib/rt/pure/__release ) (func $~lib/set/Set#add (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 - local.get $1 local.get $1 i32.const 255 i32.and - call $~lib/util/hash/hash8 - local.tee $3 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul + local.tee $2 + local.set $3 + local.get $0 + local.get $1 + local.get $2 call $~lib/set/Set#find i32.eqz if @@ -2839,39 +2860,31 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/set/Set#values (param $0 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - i32.load offset=8 - local.set $6 - local.get $0 - i32.load offset=16 - local.tee $7 - local.set $4 + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 6 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $4 i32.const 0 i32.store - local.get $0 + local.get $4 i32.const 0 i32.store offset=4 - local.get $0 + local.get $4 i32.const 0 i32.store offset=8 - local.get $0 + local.get $4 i32.const 0 i32.store offset=12 - local.get $4 + local.get $0 i32.const 1073741808 i32.gt_u if @@ -2882,75 +2895,42 @@ call $~lib/builtins/abort unreachable end - local.get $4 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 - local.get $4 + local.get $0 call $~lib/memory/memory.fill local.get $2 - local.set $3 + local.set $1 local.get $2 - local.get $0 + local.get $4 i32.load - local.tee $8 + local.tee $3 i32.ne if - local.get $3 + local.get $1 call $~lib/rt/pure/__retain - local.set $3 - local.get $8 + local.set $1 + local.get $3 call $~lib/rt/pure/__release end - local.get $0 - local.get $3 + local.get $4 + local.get $1 i32.store - local.get $0 + local.get $4 local.get $2 i32.store offset=4 - local.get $0 local.get $4 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $4 - i32.store offset=12 - loop $for-loop|0 - local.get $5 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $5 - i32.const 3 - i32.shl - i32.add - local.tee $2 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - local.get $1 - local.get $2 - i32.load8_u - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - call $~lib/array/Array#set:length local.get $0 + i32.store offset=12 + local.get $4 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -2978,7 +2958,10 @@ local.get $1 i32.const 255 i32.and - call $~lib/util/hash/hash8 + i32.const -2128831035 + i32.xor + i32.const 16777619 + i32.mul call $~lib/set/Set#find local.tee $1 i32.eqz @@ -3037,17 +3020,21 @@ (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) call $~lib/set/Set#constructor - local.set $0 + local.set $1 loop $for-loop|1 - local.get $2 + local.get $3 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -3057,12 +3044,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -3073,14 +3060,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|1 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -3093,16 +3080,16 @@ unreachable end i32.const 50 - local.set $2 + local.set $3 loop $for-loop|3 - local.get $2 + local.get $3 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -3113,12 +3100,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -3129,14 +3116,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|3 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -3148,20 +3135,61 @@ call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=16 + local.tee $6 + call $~lib/array/Array#constructor + local.set $3 + loop $for-loop|0 + local.get $4 + local.get $6 + i32.lt_s + if + local.get $5 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $0 + local.get $7 + i32.load8_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 local.get $0 - call $~lib/set/Set#values - local.set $2 + call $~lib/array/Array#set:length call $~lib/set/Set#constructor - local.set $3 + local.set $0 loop $for-loop|4 - local.get $1 local.get $2 + local.get $3 i32.load offset=12 i32.lt_s if - local.get $0 - local.get $2 local.get $1 + local.get $3 + local.get $2 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -3173,23 +3201,23 @@ call $~lib/builtins/abort unreachable end + local.get $0 local.get $3 local.get $2 - local.get $1 call $~lib/array/Array#__get call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|4 end end - local.get $3 - i32.load offset=20 local.get $0 i32.load offset=20 + local.get $1 + i32.load offset=20 i32.ne if i32.const 0 @@ -3200,16 +3228,16 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|6 - local.get $1 + local.get $2 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -3220,11 +3248,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#delete - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -3234,14 +3262,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|6 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -3254,16 +3282,16 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|8 - local.get $1 + local.get $2 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -3273,12 +3301,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -3289,11 +3317,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#delete - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -3303,14 +3331,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|8 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -3322,9 +3350,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/set/Set#clear - local.get $0 + local.get $1 i32.load offset=20 if i32.const 0 @@ -3334,18 +3362,21 @@ call $~lib/builtins/abort unreachable end - local.get $2 - call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 7 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $0 i32.const 16 @@ -3655,6 +3686,82 @@ local.get $0 call $~lib/rt/pure/__retain ) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + call $~lib/rt/tlsf/maybeInitialize + i32.const 16 + i32.const 8 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain + local.tee $5 + i32.const 0 + i32.store + local.get $5 + i32.const 0 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 536870904 + i32.gt_u + if + i32.const 1200 + i32.const 1360 + i32.const 57 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + call $~lib/rt/tlsf/maybeInitialize + local.get $0 + i32.const 1 + i32.shl + local.tee $4 + i32.const 0 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $4 + call $~lib/memory/memory.fill + local.get $2 + local.set $1 + local.get $2 + local.get $5 + i32.load + local.tee $3 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $3 + call $~lib/rt/pure/__release + end + local.get $5 + local.get $1 + i32.store + local.get $5 + local.get $2 + i32.store offset=4 + local.get $5 + local.get $4 + i32.store offset=8 + local.get $5 + local.get $0 + i32.store offset=12 + local.get $5 + ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 @@ -3705,123 +3812,6 @@ local.get $1 i32.store offset=12 ) - (func $~lib/set/Set#values (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - i32.load offset=8 - local.set $5 - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $7 - i32.const 16 - i32.const 8 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $8 - i32.const 536870904 - i32.gt_u - if - i32.const 1200 - i32.const 1360 - i32.const 57 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.const 1 - i32.shl - local.tee $6 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $6 - call $~lib/memory/memory.fill - local.get $3 - local.set $2 - local.get $3 - local.get $0 - i32.load - local.tee $4 - i32.ne - if - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $4 - call $~lib/rt/pure/__release - end - local.get $0 - local.get $2 - i32.store - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $6 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - if - local.get $5 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.tee $3 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - local.get $1 - local.get $3 - i32.load16_s - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - call $~lib/array/Array#set:length - local.get $0 - ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 @@ -3911,10 +3901,14 @@ (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) call $~lib/set/Set#constructor - local.set $0 + local.set $1 loop $for-loop|1 - local.get $2 + local.get $3 i32.const 16 i32.shl i32.const 16 @@ -3922,8 +3916,8 @@ i32.const 100 i32.lt_s if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -3933,12 +3927,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -3949,14 +3943,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|1 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -3969,9 +3963,9 @@ unreachable end i32.const 50 - local.set $2 + local.set $3 loop $for-loop|3 - local.get $2 + local.get $3 i32.const 16 i32.shl i32.const 16 @@ -3979,8 +3973,8 @@ i32.const 100 i32.lt_s if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -3991,12 +3985,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -4007,14 +4001,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|3 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -4026,20 +4020,61 @@ call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=16 + local.tee $6 + call $~lib/array/Array#constructor + local.set $3 + loop $for-loop|0 + local.get $4 + local.get $6 + i32.lt_s + if + local.get $5 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $0 + local.get $7 + i32.load16_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 local.get $0 - call $~lib/set/Set#values - local.set $2 + call $~lib/array/Array#set:length call $~lib/set/Set#constructor - local.set $3 + local.set $0 loop $for-loop|4 - local.get $1 local.get $2 + local.get $3 i32.load offset=12 i32.lt_s if - local.get $0 - local.get $2 local.get $1 + local.get $3 + local.get $2 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -4051,23 +4086,23 @@ call $~lib/builtins/abort unreachable end + local.get $0 local.get $3 local.get $2 - local.get $1 call $~lib/array/Array#__get call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|4 end end - local.get $3 - i32.load offset=20 local.get $0 i32.load offset=20 + local.get $1 + i32.load offset=20 i32.ne if i32.const 0 @@ -4078,9 +4113,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|6 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 16 @@ -4088,8 +4123,8 @@ i32.const 50 i32.lt_s if - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -4100,11 +4135,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#delete - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -4114,14 +4149,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|6 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -4134,9 +4169,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|8 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 16 @@ -4144,8 +4179,8 @@ i32.const 50 i32.lt_s if - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -4155,12 +4190,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -4171,11 +4206,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#delete - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -4185,14 +4220,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|8 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -4204,9 +4239,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/set/Set#clear - local.get $0 + local.get $1 i32.load offset=20 if i32.const 0 @@ -4216,18 +4251,21 @@ call $~lib/builtins/abort unreachable end - local.get $2 - call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 9 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $0 i32.const 16 @@ -4475,40 +4513,32 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/set/Set#values (param $0 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - i32.load offset=8 - local.set $5 - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $7 + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 10 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $5 i32.const 0 i32.store - local.get $0 + local.get $5 i32.const 0 i32.store offset=4 - local.get $0 + local.get $5 i32.const 0 i32.store offset=8 - local.get $0 + local.get $5 i32.const 0 i32.store offset=12 - local.get $8 + local.get $0 i32.const 536870904 i32.gt_u if @@ -4519,78 +4549,45 @@ call $~lib/builtins/abort unreachable end - local.get $7 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 1 i32.shl - local.tee $6 + local.tee $4 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $4 call $~lib/memory/memory.fill - local.get $3 - local.set $2 - local.get $3 - local.get $0 + local.get $2 + local.set $1 + local.get $2 + local.get $5 i32.load - local.tee $4 + local.tee $3 i32.ne if - local.get $2 + local.get $1 call $~lib/rt/pure/__retain - local.set $2 - local.get $4 + local.set $1 + local.get $3 call $~lib/rt/pure/__release end - local.get $0 - local.get $2 + local.get $5 + local.get $1 i32.store - local.get $0 - local.get $3 + local.get $5 + local.get $2 i32.store offset=4 - local.get $0 - local.get $6 + local.get $5 + local.get $4 i32.store offset=8 + local.get $5 local.get $0 - local.get $7 i32.store offset=12 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - if - local.get $5 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.tee $3 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - local.get $1 - local.get $3 - i32.load16_u - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - call $~lib/array/Array#set:length - local.get $0 + local.get $5 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -4679,17 +4676,21 @@ (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) call $~lib/set/Set#constructor - local.set $0 + local.set $1 loop $for-loop|1 - local.get $2 + local.get $3 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -4699,12 +4700,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -4715,14 +4716,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|1 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -4735,16 +4736,16 @@ unreachable end i32.const 50 - local.set $2 + local.set $3 loop $for-loop|3 - local.get $2 + local.get $3 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -4755,12 +4756,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -4771,14 +4772,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|3 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -4790,20 +4791,61 @@ call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=16 + local.tee $6 + call $~lib/array/Array#constructor + local.set $3 + loop $for-loop|0 + local.get $4 + local.get $6 + i32.lt_s + if + local.get $5 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $0 + local.get $7 + i32.load16_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $3 local.get $0 - call $~lib/set/Set#values - local.set $2 + call $~lib/array/Array#set:length call $~lib/set/Set#constructor - local.set $3 + local.set $0 loop $for-loop|4 - local.get $1 local.get $2 + local.get $3 i32.load offset=12 i32.lt_s if - local.get $0 - local.get $2 local.get $1 + local.get $3 + local.get $2 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -4815,23 +4857,23 @@ call $~lib/builtins/abort unreachable end + local.get $0 local.get $3 local.get $2 - local.get $1 call $~lib/array/Array#__get call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|4 end end - local.get $3 - i32.load offset=20 local.get $0 i32.load offset=20 + local.get $1 + i32.load offset=20 i32.ne if i32.const 0 @@ -4842,16 +4884,16 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|6 - local.get $1 + local.get $2 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -4862,11 +4904,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#delete - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -4876,14 +4918,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|6 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -4896,16 +4938,16 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|8 - local.get $1 + local.get $2 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -4915,12 +4957,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -4931,11 +4973,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#delete - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -4945,14 +4987,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|8 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -4964,9 +5006,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/set/Set#clear - local.get $0 + local.get $1 i32.load offset=20 if i32.const 0 @@ -4976,18 +5018,21 @@ call $~lib/builtins/abort unreachable end - local.get $2 - call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 11 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $0 i32.const 16 @@ -5303,6 +5348,82 @@ local.get $0 call $~lib/rt/pure/__retain ) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + call $~lib/rt/tlsf/maybeInitialize + i32.const 16 + i32.const 12 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain + local.tee $5 + i32.const 0 + i32.store + local.get $5 + i32.const 0 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 268435452 + i32.gt_u + if + i32.const 1200 + i32.const 1360 + i32.const 57 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + call $~lib/rt/tlsf/maybeInitialize + local.get $0 + i32.const 2 + i32.shl + local.tee $4 + i32.const 0 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $4 + call $~lib/memory/memory.fill + local.get $2 + local.set $1 + local.get $2 + local.get $5 + i32.load + local.tee $3 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $3 + call $~lib/rt/pure/__release + end + local.get $5 + local.get $1 + i32.store + local.get $5 + local.get $2 + i32.store offset=4 + local.get $5 + local.get $4 + i32.store offset=8 + local.get $5 + local.get $0 + i32.store offset=12 + local.get $5 + ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 @@ -5353,139 +5474,22 @@ local.get $1 i32.store offset=12 ) - (func $~lib/set/Set#values (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - i32.load offset=8 - local.set $5 - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $7 - i32.const 16 - i32.const 12 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 local.get $0 - i32.const 0 - i32.store offset=12 - local.get $8 - i32.const 268435452 - i32.gt_u + i32.load offset=12 + i32.ge_u if - i32.const 1200 + i32.const 1408 i32.const 1360 - i32.const 57 - i32.const 60 + i32.const 104 + i32.const 42 call $~lib/builtins/abort unreachable end - local.get $7 - i32.const 2 - i32.shl - local.tee $6 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $6 - call $~lib/memory/memory.fill - local.get $3 - local.set $2 - local.get $3 - local.get $0 - i32.load - local.tee $4 - i32.ne - if - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $4 - call $~lib/rt/pure/__release - end - local.get $0 - local.get $2 - i32.store - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $6 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - if - local.get $5 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.tee $3 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - local.get $1 - local.get $3 - i32.load - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - call $~lib/array/Array#set:length - local.get $0 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1408 - i32.const 1360 - i32.const 104 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 + local.get $0 + i32.load offset=4 + local.get $1 i32.const 2 i32.shl i32.add @@ -5555,15 +5559,19 @@ (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) call $~lib/set/Set#constructor - local.set $0 + local.set $1 loop $for-loop|0 - local.get $2 + local.get $3 i32.const 100 i32.lt_s if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -5573,12 +5581,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -5589,14 +5597,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -5609,14 +5617,14 @@ unreachable end i32.const 50 - local.set $2 + local.set $3 loop $for-loop|1 - local.get $2 + local.get $3 i32.const 100 i32.lt_s if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -5627,12 +5635,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -5643,14 +5651,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|1 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -5662,20 +5670,61 @@ call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=16 + local.tee $6 + call $~lib/array/Array#constructor + local.set $3 + loop $for-loop|01 + local.get $4 + local.get $6 + i32.lt_s + if + local.get $5 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $0 + local.get $7 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|01 + end + end + local.get $3 local.get $0 - call $~lib/set/Set#values - local.set $2 + call $~lib/array/Array#set:length call $~lib/set/Set#constructor - local.set $3 + local.set $0 loop $for-loop|2 - local.get $1 local.get $2 + local.get $3 i32.load offset=12 i32.lt_s if - local.get $0 - local.get $2 local.get $1 + local.get $3 + local.get $2 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -5687,23 +5736,23 @@ call $~lib/builtins/abort unreachable end + local.get $0 local.get $3 local.get $2 - local.get $1 call $~lib/array/Array#__get call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|2 end end - local.get $3 - i32.load offset=20 local.get $0 i32.load offset=20 + local.get $1 + i32.load offset=20 i32.ne if i32.const 0 @@ -5714,14 +5763,14 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i32.const 50 i32.lt_s if - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -5732,11 +5781,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#delete - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -5746,14 +5795,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|3 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -5766,14 +5815,14 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|4 - local.get $1 + local.get $2 i32.const 50 i32.lt_s if - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -5783,12 +5832,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -5799,11 +5848,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#delete - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -5813,14 +5862,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|4 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -5832,9 +5881,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/set/Set#clear - local.get $0 + local.get $1 i32.load offset=20 if i32.const 0 @@ -5844,18 +5893,21 @@ call $~lib/builtins/abort unreachable end - local.get $2 - call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 13 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $0 i32.const 16 @@ -5879,40 +5931,32 @@ i32.store offset=20 local.get $0 ) - (func $~lib/set/Set#values (param $0 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - i32.load offset=8 - local.set $5 - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $7 + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 14 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $5 i32.const 0 i32.store - local.get $0 + local.get $5 i32.const 0 i32.store offset=4 - local.get $0 + local.get $5 i32.const 0 i32.store offset=8 - local.get $0 + local.get $5 i32.const 0 i32.store offset=12 - local.get $8 + local.get $0 i32.const 268435452 i32.gt_u if @@ -5923,93 +5967,64 @@ call $~lib/builtins/abort unreachable end - local.get $7 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 2 i32.shl - local.tee $6 + local.tee $4 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $4 call $~lib/memory/memory.fill - local.get $3 - local.set $2 - local.get $3 - local.get $0 + local.get $2 + local.set $1 + local.get $2 + local.get $5 i32.load - local.tee $4 + local.tee $3 i32.ne if - local.get $2 + local.get $1 call $~lib/rt/pure/__retain - local.set $2 - local.get $4 + local.set $1 + local.get $3 call $~lib/rt/pure/__release end - local.get $0 - local.get $2 + local.get $5 + local.get $1 i32.store - local.get $0 - local.get $3 + local.get $5 + local.get $2 i32.store offset=4 - local.get $0 - local.get $6 + local.get $5 + local.get $4 i32.store offset=8 + local.get $5 local.get $0 - local.get $7 i32.store offset=12 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - if - local.get $5 - local.get $9 - i32.const 3 - i32.shl - i32.add - local.tee $3 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - local.get $1 - local.get $3 - i32.load - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - call $~lib/array/Array#set:length - local.get $0 + local.get $5 ) (func $std/set/testNumeric (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) call $~lib/set/Set#constructor - local.set $0 + local.set $1 loop $for-loop|0 - local.get $2 + local.get $3 i32.const 100 i32.lt_u if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -6019,12 +6034,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -6035,14 +6050,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -6055,14 +6070,14 @@ unreachable end i32.const 50 - local.set $2 + local.set $3 loop $for-loop|1 - local.get $2 + local.get $3 i32.const 100 i32.lt_u if - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -6073,12 +6088,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 - local.get $2 + local.get $1 + local.get $3 call $~lib/set/Set#has i32.eqz if @@ -6089,14 +6104,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|1 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -6108,20 +6123,61 @@ call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=16 + local.tee $6 + call $~lib/array/Array#constructor + local.set $3 + loop $for-loop|01 + local.get $4 + local.get $6 + i32.lt_s + if + local.get $5 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $0 + local.get $7 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|01 + end + end + local.get $3 local.get $0 - call $~lib/set/Set#values - local.set $2 + call $~lib/array/Array#set:length call $~lib/set/Set#constructor - local.set $3 + local.set $0 loop $for-loop|2 - local.get $1 local.get $2 + local.get $3 i32.load offset=12 i32.lt_s if - local.get $0 - local.get $2 local.get $1 + local.get $3 + local.get $2 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -6133,23 +6189,23 @@ call $~lib/builtins/abort unreachable end + local.get $0 local.get $3 local.get $2 - local.get $1 call $~lib/array/Array#__get call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|2 end end - local.get $3 - i32.load offset=20 local.get $0 i32.load offset=20 + local.get $1 + i32.load offset=20 i32.ne if i32.const 0 @@ -6160,14 +6216,14 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i32.const 50 i32.lt_u if - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -6178,11 +6234,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#delete - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -6192,14 +6248,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|3 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -6212,14 +6268,14 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|4 - local.get $1 + local.get $2 i32.const 50 i32.lt_u if - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -6229,12 +6285,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -6245,11 +6301,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#delete - local.get $0 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -6259,14 +6315,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|4 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -6278,9 +6334,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/set/Set#clear - local.get $0 + local.get $1 i32.load offset=20 if i32.const 0 @@ -6290,18 +6346,21 @@ call $~lib/builtins/abort unreachable end - local.get $2 - call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 15 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $0 i32.const 16 @@ -6652,15 +6711,91 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - local.get $1 + (local $4 i32) + (local $5 i32) + call $~lib/rt/tlsf/maybeInitialize + i32.const 16 + i32.const 16 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain + local.tee $5 + i32.const 0 + i32.store + local.get $5 + i32.const 0 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.store offset=12 local.get $0 - i32.load offset=12 - i32.ge_u + i32.const 134217726 + i32.gt_u if - local.get $1 - i32.const 0 + i32.const 1200 + i32.const 1360 + i32.const 57 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + call $~lib/rt/tlsf/maybeInitialize + local.get $0 + i32.const 3 + i32.shl + local.tee $4 + i32.const 0 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $4 + call $~lib/memory/memory.fill + local.get $2 + local.set $1 + local.get $2 + local.get $5 + i32.load + local.tee $3 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + local.set $1 + local.get $3 + call $~lib/rt/pure/__release + end + local.get $5 + local.get $1 + i32.store + local.get $5 + local.get $2 + i32.store offset=4 + local.get $5 + local.get $4 + i32.store offset=8 + local.get $5 + local.get $0 + i32.store offset=12 + local.get $5 + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 i32.lt_s if i32.const 1408 @@ -6702,123 +6837,6 @@ local.get $1 i32.store offset=12 ) - (func $~lib/set/Set#values (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - i32.load offset=8 - local.set $5 - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $7 - i32.const 16 - i32.const 16 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $8 - i32.const 134217726 - i32.gt_u - if - i32.const 1200 - i32.const 1360 - i32.const 57 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.const 3 - i32.shl - local.tee $6 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $6 - call $~lib/memory/memory.fill - local.get $3 - local.set $2 - local.get $3 - local.get $0 - i32.load - local.tee $4 - i32.ne - if - local.get $2 - call $~lib/rt/pure/__retain - local.set $2 - local.get $4 - call $~lib/rt/pure/__release - end - local.get $0 - local.get $2 - i32.store - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $6 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - if - local.get $5 - local.get $9 - i32.const 4 - i32.shl - i32.add - local.tee $3 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - local.get $1 - local.get $3 - i64.load - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - call $~lib/array/Array#set:length - local.get $0 - ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) local.get $1 local.get $0 @@ -6934,20 +6952,24 @@ i32.store offset=20 ) (func $std/set/testNumeric - (local $0 i64) - (local $1 i32) + (local $0 i32) + (local $1 i64) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) call $~lib/set/Set#constructor - local.set $1 + local.set $2 loop $for-loop|0 - local.get $0 + local.get $1 i64.const 100 i64.lt_s if + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has if i32.const 0 @@ -6957,12 +6979,12 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#add call $~lib/rt/pure/__release + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has i32.eqz if @@ -6973,14 +6995,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 1 i64.add - local.set $0 + local.set $1 br $for-loop|0 end end - local.get $1 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -6993,14 +7015,14 @@ unreachable end i64.const 50 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i64.const 100 i64.lt_s if + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has i32.eqz if @@ -7011,12 +7033,12 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#add call $~lib/rt/pure/__release + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has i32.eqz if @@ -7027,14 +7049,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 1 i64.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -7046,20 +7068,61 @@ call $~lib/builtins/abort unreachable end - local.get $1 - call $~lib/set/Set#values - local.set $2 + local.get $2 + i32.load offset=8 + local.set $6 + local.get $2 + i32.load offset=16 + local.tee $7 + call $~lib/array/Array#constructor + local.set $3 + loop $for-loop|01 + local.get $4 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $4 + i32.const 4 + i32.shl + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $0 + local.get $8 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|01 + end + end + local.get $3 + local.get $0 + call $~lib/array/Array#set:length call $~lib/set/Set#constructor - local.set $4 + local.set $0 loop $for-loop|2 + local.get $5 local.get $3 - local.get $2 i32.load offset=12 i32.lt_s if - local.get $1 local.get $2 local.get $3 + local.get $5 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -7071,22 +7134,22 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 + local.get $0 local.get $3 + local.get $5 call $~lib/array/Array#__get call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|2 end end - local.get $4 + local.get $0 i32.load offset=20 - local.get $1 + local.get $2 i32.load offset=20 i32.ne if @@ -7098,14 +7161,14 @@ unreachable end i64.const 0 - local.set $0 + local.set $1 loop $for-loop|3 - local.get $0 + local.get $1 i64.const 50 i64.lt_s if + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has i32.eqz if @@ -7116,11 +7179,11 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#delete + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has if i32.const 0 @@ -7130,14 +7193,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 1 i64.add - local.set $0 + local.set $1 br $for-loop|3 end end - local.get $1 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -7150,14 +7213,14 @@ unreachable end i64.const 0 - local.set $0 + local.set $1 loop $for-loop|4 - local.get $0 + local.get $1 i64.const 50 i64.lt_s if + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has if i32.const 0 @@ -7167,12 +7230,12 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#add call $~lib/rt/pure/__release + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has i32.eqz if @@ -7183,11 +7246,11 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#delete + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has if i32.const 0 @@ -7197,14 +7260,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 1 i64.add - local.set $0 + local.set $1 br $for-loop|4 end end - local.get $1 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -7216,9 +7279,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 call $~lib/set/Set#clear - local.get $1 + local.get $2 i32.load offset=20 if i32.const 0 @@ -7228,18 +7291,21 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 call $~lib/rt/pure/__release - local.get $4 + local.get $0 call $~lib/rt/pure/__release - local.get $1 + local.get $2 call $~lib/rt/pure/__release ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 17 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $0 i32.const 16 @@ -7263,40 +7329,32 @@ i32.store offset=20 local.get $0 ) - (func $~lib/set/Set#values (param $0 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $0 - i32.load offset=8 - local.set $5 - local.get $0 - i32.load offset=16 - local.tee $8 - local.set $7 + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 18 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $5 i32.const 0 i32.store - local.get $0 + local.get $5 i32.const 0 i32.store offset=4 - local.get $0 + local.get $5 i32.const 0 i32.store offset=8 - local.get $0 + local.get $5 i32.const 0 i32.store offset=12 - local.get $8 + local.get $0 i32.const 134217726 i32.gt_u if @@ -7307,94 +7365,65 @@ call $~lib/builtins/abort unreachable end - local.get $7 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 3 i32.shl - local.tee $6 + local.tee $4 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $4 call $~lib/memory/memory.fill - local.get $3 - local.set $2 - local.get $3 - local.get $0 + local.get $2 + local.set $1 + local.get $2 + local.get $5 i32.load - local.tee $4 + local.tee $3 i32.ne if - local.get $2 + local.get $1 call $~lib/rt/pure/__retain - local.set $2 - local.get $4 + local.set $1 + local.get $3 call $~lib/rt/pure/__release end - local.get $0 - local.get $2 + local.get $5 + local.get $1 i32.store - local.get $0 - local.get $3 + local.get $5 + local.get $2 i32.store offset=4 - local.get $0 - local.get $6 + local.get $5 + local.get $4 i32.store offset=8 + local.get $5 local.get $0 - local.get $7 i32.store offset=12 - loop $for-loop|0 - local.get $9 - local.get $8 - i32.lt_s - if - local.get $5 - local.get $9 - i32.const 4 - i32.shl - i32.add - local.tee $3 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - local.get $1 - local.get $3 - i64.load - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - call $~lib/array/Array#set:length - local.get $0 + local.get $5 ) (func $std/set/testNumeric - (local $0 i64) - (local $1 i32) + (local $0 i32) + (local $1 i64) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) call $~lib/set/Set#constructor - local.set $1 + local.set $2 loop $for-loop|0 - local.get $0 + local.get $1 i64.const 100 i64.lt_u if + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has if i32.const 0 @@ -7404,12 +7433,12 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#add call $~lib/rt/pure/__release + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has i32.eqz if @@ -7420,14 +7449,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 1 i64.add - local.set $0 + local.set $1 br $for-loop|0 end end - local.get $1 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -7440,14 +7469,14 @@ unreachable end i64.const 50 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i64.const 100 i64.lt_u if + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has i32.eqz if @@ -7458,12 +7487,12 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#add call $~lib/rt/pure/__release + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has i32.eqz if @@ -7474,14 +7503,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 1 i64.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -7493,20 +7522,61 @@ call $~lib/builtins/abort unreachable end - local.get $1 - call $~lib/set/Set#values - local.set $2 + local.get $2 + i32.load offset=8 + local.set $6 + local.get $2 + i32.load offset=16 + local.tee $7 + call $~lib/array/Array#constructor + local.set $3 + loop $for-loop|01 + local.get $4 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $4 + i32.const 4 + i32.shl + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $0 + local.get $8 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|01 + end + end + local.get $3 + local.get $0 + call $~lib/array/Array#set:length call $~lib/set/Set#constructor - local.set $4 + local.set $0 loop $for-loop|2 + local.get $5 local.get $3 - local.get $2 i32.load offset=12 i32.lt_s if - local.get $1 local.get $2 local.get $3 + local.get $5 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -7518,22 +7588,22 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 + local.get $0 local.get $3 + local.get $5 call $~lib/array/Array#__get call $~lib/set/Set#add call $~lib/rt/pure/__release - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|2 end end - local.get $4 + local.get $0 i32.load offset=20 - local.get $1 + local.get $2 i32.load offset=20 i32.ne if @@ -7545,14 +7615,14 @@ unreachable end i64.const 0 - local.set $0 + local.set $1 loop $for-loop|3 - local.get $0 + local.get $1 i64.const 50 i64.lt_u if + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has i32.eqz if @@ -7563,11 +7633,11 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#delete + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has if i32.const 0 @@ -7577,14 +7647,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 1 i64.add - local.set $0 + local.set $1 br $for-loop|3 end end - local.get $1 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -7597,14 +7667,14 @@ unreachable end i64.const 0 - local.set $0 + local.set $1 loop $for-loop|4 - local.get $0 + local.get $1 i64.const 50 i64.lt_u if + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has if i32.const 0 @@ -7614,12 +7684,12 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#add call $~lib/rt/pure/__release + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has i32.eqz if @@ -7630,11 +7700,11 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#delete + local.get $2 local.get $1 - local.get $0 call $~lib/set/Set#has if i32.const 0 @@ -7644,14 +7714,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 1 i64.add - local.set $0 + local.set $1 br $for-loop|4 end end - local.get $1 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -7663,9 +7733,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 call $~lib/set/Set#clear - local.get $1 + local.get $2 i32.load offset=20 if i32.const 0 @@ -7675,18 +7745,21 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 call $~lib/rt/pure/__release - local.get $4 + local.get $0 call $~lib/rt/pure/__release - local.get $1 + local.get $2 call $~lib/rt/pure/__release ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 19 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $0 i32.const 16 @@ -7974,41 +8047,32 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/set/Set#values (param $0 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 f32) + (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - i32.load offset=8 - local.set $6 - local.get $0 - i32.load offset=16 - local.tee $9 - local.set $8 + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 20 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $5 i32.const 0 i32.store - local.get $0 + local.get $5 i32.const 0 i32.store offset=4 - local.get $0 + local.get $5 i32.const 0 i32.store offset=8 - local.get $0 + local.get $5 i32.const 0 i32.store offset=12 - local.get $9 + local.get $0 i32.const 268435452 i32.gt_u if @@ -8019,48 +8083,68 @@ call $~lib/builtins/abort unreachable end - local.get $8 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 2 i32.shl - local.tee $7 + local.tee $4 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $4 call $~lib/memory/memory.fill - local.get $3 - local.set $2 - local.get $3 - local.get $0 + local.get $2 + local.set $1 + local.get $2 + local.get $5 i32.load - local.tee $5 + local.tee $3 i32.ne if - local.get $2 + local.get $1 call $~lib/rt/pure/__retain - local.set $2 - local.get $5 + local.set $1 + local.get $3 call $~lib/rt/pure/__release end - local.get $0 - local.get $2 + local.get $5 + local.get $1 i32.store - local.get $0 - local.get $3 + local.get $5 + local.get $2 i32.store offset=4 - local.get $0 - local.get $7 + local.get $5 + local.get $4 i32.store offset=8 + local.get $5 local.get $0 - local.get $8 i32.store offset=12 + local.get $5 + ) + (func $~lib/set/Set#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 f32) + local.get $0 + i32.load offset=8 + local.set $4 + local.get $0 + i32.load offset=16 + local.tee $5 + call $~lib/array/Array#constructor + local.set $0 loop $for-loop|0 - local.get $10 - local.get $9 + local.get $2 + local.get $5 i32.lt_s if - local.get $6 - local.get $10 + local.get $4 + local.get $2 i32.const 3 i32.shl i32.add @@ -8072,7 +8156,7 @@ if local.get $3 f32.load - local.set $4 + local.set $6 local.get $1 local.get $0 i32.load offset=12 @@ -8106,17 +8190,17 @@ i32.const 2 i32.shl i32.add - local.get $4 + local.get $6 f32.store local.get $1 i32.const 1 i32.add local.set $1 end - local.get $10 + local.get $2 i32.const 1 i32.add - local.set $10 + local.set $2 br $for-loop|0 end end @@ -8511,9 +8595,12 @@ ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 24 i32.const 21 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $0 i32.const 16 @@ -8801,41 +8888,32 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/set/Set#values (param $0 i32) (result i32) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 f64) + (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $0 - i32.load offset=8 - local.set $6 - local.get $0 - i32.load offset=16 - local.tee $9 - local.set $8 + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 22 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain - local.tee $0 + local.tee $5 i32.const 0 i32.store - local.get $0 + local.get $5 i32.const 0 i32.store offset=4 - local.get $0 + local.get $5 i32.const 0 i32.store offset=8 - local.get $0 + local.get $5 i32.const 0 i32.store offset=12 - local.get $9 + local.get $0 i32.const 134217726 i32.gt_u if @@ -8846,48 +8924,68 @@ call $~lib/builtins/abort unreachable end - local.get $8 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 3 i32.shl - local.tee $7 + local.tee $4 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $4 call $~lib/memory/memory.fill - local.get $3 - local.set $2 - local.get $3 - local.get $0 + local.get $2 + local.set $1 + local.get $2 + local.get $5 i32.load - local.tee $5 + local.tee $3 i32.ne if - local.get $2 + local.get $1 call $~lib/rt/pure/__retain - local.set $2 - local.get $5 + local.set $1 + local.get $3 call $~lib/rt/pure/__release end - local.get $0 - local.get $2 + local.get $5 + local.get $1 i32.store - local.get $0 - local.get $3 + local.get $5 + local.get $2 i32.store offset=4 - local.get $0 - local.get $7 + local.get $5 + local.get $4 i32.store offset=8 + local.get $5 local.get $0 - local.get $8 i32.store offset=12 + local.get $5 + ) + (func $~lib/set/Set#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 f64) + local.get $0 + i32.load offset=8 + local.set $4 + local.get $0 + i32.load offset=16 + local.tee $5 + call $~lib/array/Array#constructor + local.set $0 loop $for-loop|0 - local.get $10 - local.get $9 + local.get $2 + local.get $5 i32.lt_s if - local.get $6 - local.get $10 + local.get $4 + local.get $2 i32.const 4 i32.shl i32.add @@ -8899,7 +8997,7 @@ if local.get $3 f64.load - local.set $4 + local.set $6 local.get $1 local.get $0 i32.load offset=12 @@ -8933,17 +9031,17 @@ i32.const 3 i32.shl i32.add - local.get $4 + local.get $6 f64.store local.get $1 i32.const 1 i32.add local.set $1 end - local.get $10 + local.get $2 i32.const 1 i32.add - local.set $10 + local.set $2 br $for-loop|0 end end diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index 9e5adce441..468e1f742d 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -2,12 +2,12 @@ (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_none (func)) (type $none_=>_i32 (func (result i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) @@ -30,18 +30,14 @@ (global $~started (mut i32) (i32.const 0)) (export "_start" (func $~start)) (export "memory" (memory $0)) - (func $~lib/staticarray/StaticArray#get:length (param $0 i32) (result i32) + (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 i32) (result i32) + local.get $1 local.get $0 i32.const 16 i32.sub i32.load offset=12 i32.const 2 i32.shr_u - ) - (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - call $~lib/staticarray/StaticArray#get:length i32.ge_u if i32.const 1072 @@ -61,7 +57,11 @@ (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) i32.const 1 local.get $0 - call $~lib/staticarray/StaticArray#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 2 + i32.shr_u i32.ge_u if i32.const 1072 @@ -1080,14 +1080,6 @@ call $~lib/rt/rtrace/onalloc local.get $3 ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) (func $~lib/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) @@ -1262,9 +1254,12 @@ end ) (func $~lib/rt/__allocBuffer (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize local.get $0 local.get $1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $1 local.get $2 if @@ -1326,13 +1321,6 @@ end local.get $0 ) - (func $std/staticarray/test (result i32) - i32.const 12 - i32.const 3 - i32.const 1296 - call $~lib/rt/__allocBuffer - call $~lib/rt/pure/__retain - ) (func $~lib/rt/pure/__release (param $0 i32) local.get $0 i32.const 1472 @@ -1344,6 +1332,15 @@ call $~lib/rt/pure/decrement end ) + (func $std/staticarray/Ref#constructor (result i32) + call $~lib/rt/tlsf/maybeInitialize + i32.const 0 + i32.const 4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain + ) (func $start:std/staticarray (local $0 i32) i32.const 1040 @@ -1359,8 +1356,10 @@ call $~lib/builtins/abort unreachable end - i32.const 1040 - call $~lib/staticarray/StaticArray#get:length + i32.const 1036 + i32.load + i32.const 2 + i32.shr_u i32.const 3 i32.ne if @@ -1412,8 +1411,10 @@ call $~lib/builtins/abort unreachable end - i32.const 1264 - call $~lib/staticarray/StaticArray#get:length + i32.const 1260 + i32.load + i32.const 2 + i32.shr_u i32.const 3 i32.ne if @@ -1440,7 +1441,11 @@ call $~lib/builtins/abort unreachable end - call $std/staticarray/test + i32.const 12 + i32.const 3 + i32.const 1296 + call $~lib/rt/__allocBuffer + call $~lib/rt/pure/__retain global.set $std/staticarray/arr3 global.get $std/staticarray/arr3 i32.const 0 @@ -1482,7 +1487,11 @@ unreachable end global.get $std/staticarray/arr3 - call $~lib/staticarray/StaticArray#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 2 + i32.shr_u i32.const 3 i32.ne if @@ -1509,7 +1518,11 @@ call $~lib/builtins/abort unreachable end - call $std/staticarray/test + i32.const 12 + i32.const 3 + i32.const 1296 + call $~lib/rt/__allocBuffer + call $~lib/rt/pure/__retain global.get $std/staticarray/arr3 call $~lib/rt/pure/__release global.set $std/staticarray/arr3 @@ -1532,16 +1545,10 @@ call $~lib/rt/__allocBuffer call $~lib/rt/pure/__retain local.tee $0 - i32.const 0 - i32.const 4 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain + call $std/staticarray/Ref#constructor i32.store local.get $0 - i32.const 0 - i32.const 4 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain + call $std/staticarray/Ref#constructor i32.store offset=4 local.get $0 global.set $std/staticarray/arr4 diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index 242a26ef06..ee612743a9 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -1,7 +1,7 @@ (module (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) @@ -308,14 +308,6 @@ (global $~started (mut i32) (i32.const 0)) (export "_start" (func $~start)) (export "memory" (memory $0)) - (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/rt/pure/__retain (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -1376,14 +1368,6 @@ call $~lib/rt/rtrace/onalloc local.get $3 ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - i32.const 1 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) (func $~lib/util/casemap/casemap (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -1885,7 +1869,11 @@ (local $10 i32) (local $11 i32) local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $8 i32.eqz if @@ -1893,23 +1881,29 @@ call $~lib/rt/pure/__retain return end + call $~lib/rt/tlsf/maybeInitialize local.get $8 i32.const 3 i32.mul i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.set $10 - i32.const 1216 - call $~lib/string/String#get:length + i32.const 1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.set $6 + i32.const 1212 + i32.load + i32.const 1 + i32.shr_u local.set $3 loop $for-loop|0 - local.get $9 + local.get $7 local.get $8 i32.lt_u if local.get $0 - local.get $9 + local.get $7 i32.const 1 i32.shl i32.add @@ -1919,7 +1913,7 @@ i32.shr_u if block $for-continue|0 - local.get $9 + local.get $7 local.get $8 i32.const 1 i32.sub @@ -1933,7 +1927,7 @@ select if local.get $0 - local.get $9 + local.get $7 i32.const 1 i32.shl i32.add @@ -1944,10 +1938,10 @@ i32.const 1025 i32.lt_u if - local.get $9 + local.get $7 i32.const 1 i32.add - local.set $9 + local.set $7 local.get $4 i32.const 1023 i32.and @@ -1964,8 +1958,8 @@ i32.const 131072 i32.ge_u if - local.get $10 - local.get $11 + local.get $6 + local.get $5 i32.const 1 i32.shl i32.add @@ -1975,10 +1969,10 @@ i32.shl i32.or i32.store - local.get $11 + local.get $5 i32.const 1 i32.add - local.set $11 + local.set $5 br $for-continue|0 end end @@ -1989,8 +1983,8 @@ i32.const 25 i32.le_u if - local.get $10 - local.get $11 + local.get $6 + local.get $5 i32.const 1 i32.shl i32.add @@ -2008,23 +2002,22 @@ local.get $3 local.set $1 i32.const 0 - local.set $7 + local.set $9 block $~lib/util/casemap/bsearch|inlined.0 loop $while-continue|1 - local.get $7 + local.get $9 local.get $1 i32.le_s if local.get $1 - local.get $7 + local.get $9 i32.add i32.const 3 i32.shr_u i32.const 2 i32.shl - local.tee $6 - local.set $4 - local.get $6 + local.tee $10 + local.tee $4 i32.const 1 i32.shl i32.const 1216 @@ -2032,19 +2025,19 @@ i32.load16_u local.get $2 i32.sub - local.tee $5 + local.tee $11 i32.eqz br_if $~lib/util/casemap/bsearch|inlined.0 - local.get $5 + local.get $11 i32.const 31 i32.shr_u if - local.get $6 + local.get $10 i32.const 4 i32.add - local.set $7 + local.set $9 else - local.get $6 + local.get $10 i32.const 4 i32.sub local.set $1 @@ -2068,80 +2061,80 @@ i32.shl i32.const 1216 i32.add - local.tee $4 + local.tee $2 i32.load16_u offset=6 - local.set $2 - local.get $10 - local.get $11 + local.set $1 + local.get $6 + local.get $5 i32.const 1 i32.shl i32.add - local.tee $1 - local.get $4 + local.tee $4 + local.get $2 i32.load offset=2 i32.store + local.get $4 local.get $1 - local.get $2 i32.store16 offset=4 - local.get $11 - local.get $2 + local.get $5 + local.get $1 i32.const 0 i32.ne i32.const 1 i32.add i32.add - local.set $11 + local.set $5 else local.get $2 i32.const 1 call $~lib/util/casemap/casemap i32.const 2097151 i32.and - local.tee $2 + local.tee $1 i32.const 65536 i32.lt_s if - local.get $10 - local.get $11 + local.get $6 + local.get $5 i32.const 1 i32.shl i32.add - local.get $2 + local.get $1 i32.store16 else - local.get $10 - local.get $11 + local.get $6 + local.get $5 i32.const 1 i32.shl i32.add - local.get $2 + local.get $1 i32.const 65536 i32.sub - local.tee $2 + local.tee $1 i32.const 1023 i32.and i32.const 56320 i32.or i32.const 16 i32.shl - local.get $2 + local.get $1 i32.const 10 i32.shr_u i32.const 55296 i32.or i32.or i32.store - local.get $11 + local.get $5 i32.const 1 i32.add - local.set $11 + local.set $5 end end end end else - local.get $10 - local.get $11 + local.get $6 + local.get $5 i32.const 1 i32.shl i32.add @@ -2160,19 +2153,19 @@ i32.and i32.store16 end - local.get $9 + local.get $7 i32.const 1 i32.add - local.set $9 - local.get $11 + local.set $7 + local.get $5 i32.const 1 i32.add - local.set $11 + local.set $5 br $for-loop|0 end end - local.get $10 - local.get $11 + local.get $6 + local.get $5 i32.const 1 i32.shl call $~lib/rt/tlsf/__realloc @@ -2306,10 +2299,18 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 local.get $0 @@ -2365,25 +2366,31 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) - (local $12 i32) local.get $0 - call $~lib/string/String#get:length - local.tee $12 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $8 i32.eqz if local.get $0 call $~lib/rt/pure/__retain return end - local.get $12 + call $~lib/rt/tlsf/maybeInitialize + local.get $8 i32.const 2 i32.shl - call $~lib/rt/tlsf/__alloc - local.set $10 + i32.const 1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.set $9 loop $for-loop|0 local.get $4 - local.get $12 + local.get $8 i32.lt_u if local.get $0 @@ -2393,14 +2400,14 @@ i32.add i32.load16_u local.tee $3 - local.set $1 + local.set $2 local.get $3 i32.const 7 i32.shr_u if block $for-continue|0 local.get $4 - local.get $12 + local.get $8 i32.const 1 i32.sub i32.lt_u @@ -2418,7 +2425,7 @@ i32.shl i32.add i32.load16_u offset=2 - local.tee $7 + local.tee $5 i32.const 56319 i32.sub i32.const 1025 @@ -2428,11 +2435,11 @@ i32.const 1 i32.add local.set $4 - local.get $7 + local.get $5 i32.const 1023 i32.and local.get $3 - local.tee $1 + local.tee $2 i32.const 1023 i32.and i32.const 10 @@ -2444,21 +2451,21 @@ i32.const 131072 i32.ge_u if + local.get $9 local.get $10 - local.get $11 i32.const 1 i32.shl i32.add - local.get $1 - local.get $7 + local.get $2 + local.get $5 i32.const 16 i32.shl i32.or i32.store - local.get $11 + local.get $10 i32.const 1 i32.add - local.set $11 + local.set $10 br $for-continue|0 end end @@ -2467,94 +2474,91 @@ i32.const 304 i32.eq if + local.get $9 local.get $10 - local.get $11 i32.const 1 i32.shl i32.add i32.const 50790505 i32.store - local.get $11 + local.get $10 i32.const 1 i32.add - local.set $11 + local.set $10 else local.get $3 i32.const 931 i32.eq if + local.get $9 local.get $10 - local.get $11 i32.const 1 i32.shl i32.add - local.get $12 + local.get $8 i32.const 1 i32.gt_u if (result i32) block $~lib/util/string/isFinalSigma|inlined.0 (result i32) - local.get $0 - local.set $7 - local.get $4 i32.const 0 - local.set $2 + local.set $1 i32.const 0 local.get $4 local.tee $3 i32.const 30 i32.sub - local.tee $1 + local.tee $2 i32.const 0 - local.get $1 + local.get $2 i32.gt_s select - local.set $8 + local.set $7 loop $while-continue|1 local.get $3 - local.get $8 + local.get $7 i32.gt_s if local.get $3 - local.set $1 + local.set $5 i32.const -1 - local.set $6 + local.set $3 block $~lib/util/string/codePointBefore|inlined.0 - local.get $3 + local.get $5 i32.const 0 i32.le_s br_if $~lib/util/string/codePointBefore|inlined.0 - local.get $7 - local.get $1 + local.get $0 + local.get $5 i32.const 1 i32.sub i32.const 1 i32.shl i32.add i32.load16_u - local.tee $9 + local.tee $2 i32.const 64512 i32.and i32.const 56320 i32.eq - local.get $1 + local.get $5 i32.const 2 i32.sub i32.const 0 i32.ge_s i32.and if - local.get $9 + local.get $2 i32.const 1023 i32.and - local.get $7 - local.get $1 + local.get $0 + local.get $5 i32.const 2 i32.sub i32.const 1 i32.shl i32.add i32.load16_u - local.tee $1 + local.tee $6 i32.const 1023 i32.and i32.const 10 @@ -2562,8 +2566,8 @@ i32.add i32.const 65536 i32.add - local.set $6 - local.get $1 + local.set $3 + local.get $6 i32.const 64512 i32.and i32.const 55296 @@ -2571,22 +2575,21 @@ br_if $~lib/util/string/codePointBefore|inlined.0 end i32.const 65533 - local.get $9 - local.get $9 + local.get $2 + local.get $2 i32.const 63488 i32.and i32.const 55296 i32.eq select - local.set $6 + local.set $3 end - local.get $6 - local.tee $1 + local.get $3 i32.const 918000 i32.lt_u if (result i32) i32.const 6658 - local.get $1 + local.get $3 call $~lib/util/string/stagedBinaryLookup else i32.const 0 @@ -2594,12 +2597,12 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $3 i32.const 127370 i32.lt_u if (result i32) i32.const 9666 - local.get $1 + local.get $3 call $~lib/util/string/stagedBinaryLookup else i32.const 0 @@ -2608,10 +2611,10 @@ br_if $~lib/util/string/isFinalSigma|inlined.0 drop i32.const 1 - local.set $2 + local.set $1 end + local.get $5 local.get $3 - local.get $1 i32.const 65536 i32.ge_s i32.const 1 @@ -2622,88 +2625,86 @@ end end i32.const 0 - local.get $2 + local.get $1 i32.eqz br_if $~lib/util/string/isFinalSigma|inlined.0 drop + local.get $4 i32.const 1 i32.add local.tee $3 i32.const 30 i32.add - local.tee $1 - local.get $12 - local.get $1 - local.get $12 + local.tee $2 + local.get $8 + local.get $2 + local.get $8 i32.lt_s select - local.set $5 + local.set $1 loop $while-continue|2 local.get $3 - local.get $5 + local.get $1 i32.lt_s if - local.get $7 + local.get $0 local.get $3 i32.const 1 i32.shl i32.add i32.load16_u - local.tee $1 + local.tee $2 i32.const 64512 i32.and i32.const 55296 i32.eq - local.get $12 + local.get $8 local.get $3 i32.const 1 i32.add i32.ne i32.and - if (result i32) - local.get $7 + if + local.get $0 local.get $3 i32.const 1 i32.shl i32.add i32.load16_u offset=2 - local.tee $6 + local.tee $5 i32.const 64512 i32.and i32.const 56320 i32.eq - if (result i32) - local.get $1 + if + local.get $5 + local.get $2 i32.const 10 i32.shl - local.get $6 i32.add i32.const -56613888 i32.add - else - local.get $1 + local.set $2 end - else - local.get $1 end - local.tee $6 + local.get $2 i32.const 918000 i32.lt_u if (result i32) i32.const 6658 - local.get $6 + local.get $2 call $~lib/util/string/stagedBinaryLookup else i32.const 0 end i32.eqz if - local.get $6 + local.get $2 i32.const 127370 i32.lt_u if (result i32) i32.const 9666 - local.get $6 + local.get $2 call $~lib/util/string/stagedBinaryLookup else i32.const 0 @@ -2712,7 +2713,7 @@ br $~lib/util/string/isFinalSigma|inlined.0 end local.get $3 - local.get $6 + local.get $2 i32.const 65536 i32.ge_u i32.const 1 @@ -2740,8 +2741,8 @@ i32.const 25 i32.le_u if + local.get $9 local.get $10 - local.get $11 i32.const 1 i32.shl i32.add @@ -2759,16 +2760,16 @@ i32.const 65536 i32.lt_s if + local.get $9 local.get $10 - local.get $11 i32.const 1 i32.shl i32.add local.get $3 i32.store16 else + local.get $9 local.get $10 - local.get $11 i32.const 1 i32.shl i32.add @@ -2789,23 +2790,23 @@ i32.shl i32.or i32.store - local.get $11 + local.get $10 i32.const 1 i32.add - local.set $11 + local.set $10 end end end end end else + local.get $9 local.get $10 - local.get $11 i32.const 1 i32.shl i32.add - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 65 i32.sub i32.const 26 @@ -2821,15 +2822,15 @@ i32.const 1 i32.add local.set $4 - local.get $11 + local.get $10 i32.const 1 i32.add - local.set $11 + local.set $10 br $for-loop|0 end end + local.get $9 local.get $10 - local.get $11 i32.const 1 i32.shl call $~lib/rt/tlsf/__realloc @@ -2849,13 +2850,17 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize i32.const 2 local.get $0 i32.const 65535 i32.gt_s local.tee $2 i32.shl - call $~lib/rt/tlsf/__alloc + i32.const 1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $1 local.get $2 if @@ -2887,17 +2892,24 @@ ) (func $~lib/string/String#codePointAt (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $1 + (local $3 i32) local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 + local.set $3 + local.get $1 + local.get $2 i32.ge_u if i32.const -1 return end i32.const 1 - local.get $2 + local.get $3 local.get $1 i32.const 1 i32.add @@ -2933,10 +2945,10 @@ local.get $2 return end + local.get $0 local.get $2 i32.const 10 i32.shl - local.get $0 i32.add i32.const -56613888 i32.add @@ -2957,6 +2969,7 @@ i64.const 4294967295 i64.le_u if + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.wrap_i64 local.tee $1 @@ -3002,7 +3015,10 @@ local.tee $2 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc + i32.const 1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $4 local.set $3 loop $do-continue|0 @@ -3030,6 +3046,7 @@ br_if $do-continue|0 end else + call $~lib/rt/tlsf/maybeInitialize local.get $0 i64.const 100000000000 i64.ge_u @@ -3077,7 +3094,10 @@ local.tee $1 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc + i32.const 1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $4 local.set $2 loop $do-continue|00 @@ -3142,16 +3162,24 @@ i32.const 18624 local.set $0 end - local.get $3 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.tee $4 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.const 1 i32.shl local.tee $6 + local.get $3 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $4 i32.add local.tee $1 i32.eqz @@ -3161,8 +3189,12 @@ i32.const 1040 br $__inlined_func$~lib/string/String#concat end + call $~lib/rt/tlsf/maybeInitialize local.get $1 - call $~lib/rt/tlsf/__alloc + i32.const 1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $1 local.get $3 diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index 47d0c5f5b2..224af1755f 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -1117,22 +1117,6 @@ call $~lib/rt/rtrace/onalloc local.get $3 ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) - (func $~lib/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/memory/memory.copy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) @@ -1312,12 +1296,21 @@ call $~lib/rt/pure/__retain local.tee $0 call $~lib/string/String.UTF16.byteLength + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 local.get $0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.const 1 i32.shl call $~lib/memory/memory.copy @@ -1491,12 +1484,15 @@ ) (func $~lib/string/String.UTF16.decodeUnsafe (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + call $~lib/rt/tlsf/maybeInitialize local.get $1 i32.const -2 i32.and local.tee $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 local.get $1 @@ -1636,10 +1632,18 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 local.get $0 @@ -2083,12 +2087,21 @@ local.tee $0 local.get $1 call $~lib/string/String.UTF8.byteLength + local.set $2 + call $~lib/rt/tlsf/maybeInitialize + local.get $2 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $2 local.get $0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.get $2 local.get $1 call $~lib/string/String.UTF8.encodeUnsafe @@ -2531,11 +2544,14 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize local.get $1 i32.const 1 i32.shl i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $5 local.set $1 loop $while-continue|0 diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 9d5f4b26f1..6e9a543b9b 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -528,14 +528,6 @@ call $~lib/rt/pure/decrement end ) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.const 1 - i32.shr_u - ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) @@ -656,10 +648,18 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 local.get $0 @@ -687,7 +687,11 @@ local.tee $0 if (result i32) local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.eqz else i32.const 1 @@ -1704,17 +1708,10 @@ call $~lib/rt/rtrace/onalloc local.get $3 ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) (func $~lib/string/String.fromCharCode (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 2 local.get $1 i32.const 0 @@ -1722,7 +1719,9 @@ local.tee $3 i32.shl i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 i32.store16 @@ -1768,6 +1767,7 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize i32.const 2 local.get $0 i32.const 65535 @@ -1775,7 +1775,9 @@ local.tee $2 i32.shl i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $1 local.get $2 if @@ -1811,7 +1813,11 @@ local.get $1 call $~lib/rt/pure/__retain local.tee $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $4 i32.eqz if @@ -1821,7 +1827,11 @@ return end local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $3 i32.eqz if @@ -2078,17 +2088,15 @@ (local $4 i32) (local $5 i32) (local $6 i32) + i32.const 1 local.get $2 call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $5 + local.tee $2 + i32.const 16 + i32.sub + i32.load offset=12 i32.const 1 - local.get $2 - call $~lib/string/String#get:length + i32.shr_u i32.const 1 i32.shl local.tee $4 @@ -2097,7 +2105,15 @@ i32.const 1 i32.shl local.tee $3 - local.get $5 + local.get $0 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $5 i32.lt_u select if @@ -2107,9 +2123,12 @@ call $~lib/rt/pure/__release return end + call $~lib/rt/tlsf/maybeInitialize local.get $3 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $1 local.get $3 local.get $5 @@ -2160,26 +2179,32 @@ (local $3 i32) (local $4 i32) (local $5 i32) + i32.const 1 local.get $2 call $~lib/rt/pure/__retain - local.set $2 - local.get $0 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $3 + local.tee $2 + i32.const 16 + i32.sub + i32.load offset=12 i32.const 1 - local.get $2 - call $~lib/string/String#get:length + i32.shr_u i32.const 1 i32.shl - local.tee $4 + local.tee $3 i32.eqz local.get $1 i32.const 1 i32.shl - local.tee $5 - local.get $3 + local.tee $4 + local.get $0 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $1 i32.lt_u select if @@ -2189,53 +2214,56 @@ call $~lib/rt/pure/__release return end - local.get $5 + call $~lib/rt/tlsf/maybeInitialize + local.get $4 i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $5 local.get $0 - local.get $3 + local.get $1 call $~lib/memory/memory.copy - local.get $5 - local.get $3 + local.get $4 + local.get $1 i32.sub local.tee $0 - local.get $4 + local.get $3 i32.gt_u if local.get $1 - local.get $3 + local.get $5 i32.add - local.tee $3 + local.tee $1 local.get $2 - local.get $4 + local.get $3 local.get $0 i32.const 2 i32.sub - local.get $4 + local.get $3 i32.div_u - local.tee $5 + local.tee $4 call $~lib/memory/memory.repeat + local.get $1 + local.get $3 local.get $4 - local.get $5 i32.mul - local.tee $4 - local.get $3 + local.tee $1 i32.add local.get $2 local.get $0 - local.get $4 + local.get $1 i32.sub call $~lib/memory/memory.copy else local.get $1 - local.get $3 + local.get $5 i32.add local.get $2 local.get $0 call $~lib/memory/memory.copy end - local.get $1 + local.get $5 call $~lib/rt/pure/__retain local.get $2 call $~lib/rt/pure/__release @@ -2243,22 +2271,37 @@ (func $~lib/string/String#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $1 call $~lib/rt/pure/__retain local.tee $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $4 i32.eqz if local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.get $1 call $~lib/rt/pure/__release return end local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $3 + local.set $5 + local.get $3 i32.eqz if local.get $1 @@ -2273,7 +2316,7 @@ i32.gt_s select local.tee $2 - local.get $3 + local.get $5 local.get $4 i32.sub local.tee $3 @@ -2324,12 +2367,20 @@ i32.const 0 return end - local.get $0 - call $~lib/string/String#get:length - local.tee $3 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 + local.get $0 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $3 i32.ne if local.get $1 @@ -2423,7 +2474,11 @@ (local $2 i32) (local $3 i32) local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.const 1 i32.shl local.set $2 @@ -2464,9 +2519,12 @@ i32.const 1280 return end + call $~lib/rt/tlsf/maybeInitialize local.get $2 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $3 local.get $0 local.get $1 @@ -2480,7 +2538,11 @@ (local $1 i32) (local $2 i32) local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.const 1 i32.shl local.tee $2 @@ -2520,9 +2582,12 @@ call $~lib/rt/pure/__retain return end + call $~lib/rt/tlsf/maybeInitialize local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 local.get $1 @@ -2535,8 +2600,14 @@ (local $2 i32) (local $3 i32) local.get $0 - call $~lib/string/String#get:length - local.tee $3 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $1 + local.set $3 + local.get $1 i32.const 1 i32.shl local.set $1 @@ -2605,9 +2676,12 @@ call $~lib/rt/pure/__retain return end + call $~lib/rt/tlsf/maybeInitialize local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $3 local.get $0 local.get $2 @@ -2627,7 +2701,11 @@ local.get $0 call $~lib/rt/pure/__retain local.tee $3 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $0 i32.eqz br_if $folding-inner0 @@ -2653,7 +2731,7 @@ end end f64.const 1 - local.set $6 + local.set $5 i32.const 1 local.get $2 i32.const 43 @@ -2675,7 +2753,7 @@ i32.const 45 i32.eq select - local.set $6 + local.set $5 local.get $4 i32.const 2 i32.add @@ -2845,7 +2923,7 @@ local.get $1 i32.ge_u if - local.get $5 + local.get $6 i64.reinterpret_f64 i64.const 1 i64.shl @@ -2856,14 +2934,14 @@ br_if $folding-inner0 br $while-break|2 end - local.get $5 + local.get $6 local.get $1 f64.convert_i32_s f64.mul local.get $2 f64.convert_i32_u f64.add - local.set $5 + local.set $6 local.get $4 i32.const 2 i32.add @@ -2874,8 +2952,8 @@ end local.get $3 call $~lib/rt/pure/__release - local.get $6 local.get $5 + local.get $6 f64.mul return end @@ -2904,7 +2982,11 @@ local.get $0 call $~lib/rt/pure/__retain local.tee $2 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $0 i32.eqz br_if $folding-inner0 @@ -3117,7 +3199,11 @@ local.get $0 call $~lib/rt/pure/__retain local.tee $2 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $0 i32.eqz br_if $folding-inner0 @@ -3436,34 +3522,38 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) - (local $7 f64) - (local $8 i64) - (local $9 i32) - (local $10 f64) - (local $11 i64) - (local $12 i64) + (local $6 i32) + (local $7 i64) + (local $8 i32) + (local $9 i64) + (local $10 i64) + (local $11 f64) + (local $12 f64) (local $13 i32) (local $14 i64) - (local $15 i32) + (local $15 i64) block $folding-inner0 local.get $0 call $~lib/rt/pure/__retain - local.tee $3 - call $~lib/string/String#get:length - local.tee $15 + local.tee $4 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $6 i32.eqz br_if $folding-inner0 - local.get $3 + local.get $4 local.tee $0 i32.load16_u - local.set $13 + local.set $8 f64.const 1 - local.set $7 + local.set $12 loop $while-continue|0 - local.get $15 + local.get $6 if (result i32) - local.get $13 + local.get $8 call $~lib/util/string/isSpace else i32.const 0 @@ -3474,43 +3564,43 @@ i32.add local.tee $0 i32.load16_u - local.set $13 - local.get $15 + local.set $8 + local.get $6 i32.const 1 i32.sub - local.set $15 + local.set $6 br $while-continue|0 end end - local.get $15 + local.get $6 i32.eqz br_if $folding-inner0 - local.get $13 + local.get $8 i32.const 45 i32.eq if (result i32) - local.get $15 + local.get $6 i32.const 1 i32.sub - local.tee $15 + local.tee $6 i32.eqz br_if $folding-inner0 f64.const -1 - local.set $7 + local.set $12 local.get $0 i32.const 2 i32.add local.tee $0 i32.load16_u else - local.get $13 + local.get $8 i32.const 43 i32.eq if (result i32) - local.get $15 + local.get $6 i32.const 1 i32.sub - local.tee $15 + local.tee $6 i32.eqz br_if $folding-inner0 local.get $0 @@ -3519,14 +3609,14 @@ local.tee $0 i32.load16_u else - local.get $13 + local.get $8 end end - local.tee $13 + local.tee $8 i32.const 73 i32.eq i32.const 0 - local.get $15 + local.get $6 i32.const 8 i32.ge_s select @@ -3544,30 +3634,30 @@ i32.const 0 end if - local.get $3 + local.get $4 call $~lib/rt/pure/__release - local.get $7 + local.get $12 f64.const inf f64.mul return end br $folding-inner0 end - local.get $13 + local.get $8 i32.const 48 i32.sub i32.const 10 i32.ge_u i32.const 0 - local.get $13 + local.get $8 i32.const 46 i32.ne select br_if $folding-inner0 local.get $0 - local.set $5 + local.set $2 loop $while-continue|1 - local.get $13 + local.get $8 i32.const 48 i32.eq if @@ -3576,61 +3666,61 @@ i32.add local.tee $0 i32.load16_u - local.set $13 - local.get $15 + local.set $8 + local.get $6 i32.const 1 i32.sub - local.set $15 + local.set $6 br $while-continue|1 end end - local.get $15 + local.get $6 i32.const 0 i32.le_s if - local.get $3 + local.get $4 call $~lib/rt/pure/__release f64.const 0 return end - local.get $13 + local.get $8 i32.const 46 i32.eq if - local.get $5 + local.get $2 local.get $0 i32.sub i32.eqz - local.set $5 + local.set $2 local.get $0 i32.const 2 i32.add local.set $0 i32.const 0 - local.get $5 - local.get $15 + local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $15 + local.tee $6 select br_if $folding-inner0 i32.const 1 - local.set $9 + local.set $13 loop $for-loop|2 local.get $0 i32.load16_u - local.tee $13 + local.tee $8 i32.const 48 i32.eq if - local.get $15 + local.get $6 i32.const 1 i32.sub - local.set $15 - local.get $1 + local.set $6 + local.get $5 i32.const 1 i32.sub - local.set $1 + local.set $5 local.get $0 i32.const 2 i32.add @@ -3638,82 +3728,82 @@ br $for-loop|2 end end - local.get $15 + local.get $6 i32.const 0 i32.le_s if - local.get $3 + local.get $4 call $~lib/rt/pure/__release f64.const 0 return end - local.get $13 + local.get $8 i32.const 48 i32.sub i32.const 10 i32.ge_u i32.const 0 i32.const 0 + local.get $2 local.get $5 - local.get $1 select select br_if $folding-inner0 end - local.get $13 + local.get $8 i32.const 48 i32.sub - local.set $5 + local.set $2 loop $for-loop|3 i32.const 1 - local.get $9 + local.get $13 i32.eqz i32.const 0 - local.get $13 + local.get $8 i32.const 46 i32.eq select - local.get $5 + local.get $2 i32.const 10 i32.lt_u select if block $for-break3 - local.get $5 + local.get $2 i32.const 10 i32.lt_u if - local.get $5 + local.get $2 i64.extend_i32_u - local.get $14 + local.get $7 i64.const 10 i64.mul i64.add - local.get $14 - local.get $5 + local.get $7 + local.get $2 i32.eqz i32.eqz i64.extend_i32_u i64.or - local.get $2 + local.get $1 i32.const 19 i32.lt_s select - local.set $14 - local.get $2 + local.set $7 + local.get $1 i32.const 1 i32.add - local.set $2 - else - local.get $2 local.set $1 + else + local.get $1 + local.set $5 i32.const 1 - local.set $9 + local.set $13 end - local.get $15 + local.get $6 i32.const 1 i32.sub - local.tee $15 + local.tee $6 i32.eqz br_if $for-break3 local.get $0 @@ -3721,35 +3811,33 @@ i32.add local.tee $0 i32.load16_u - local.tee $13 + local.tee $8 i32.const 48 i32.sub - local.set $5 + local.set $2 br $for-loop|3 end end end block $~lib/util/string/scientific|inlined.0 (result f64) + f64.const 0 + i32.const 1 + local.get $5 local.get $1 - local.get $2 - local.get $9 + local.get $13 select i32.const 19 - local.get $2 + local.get $1 i32.const 19 - local.get $2 + local.get $1 i32.lt_s select i32.sub - local.set $9 - f64.const 0 - i32.const 1 block $~lib/util/string/parseExp|inlined.0 (result i32) i32.const 1 - local.set $2 + local.set $1 i32.const 0 local.get $0 - local.tee $1 i32.load16_u i32.const 32 i32.or @@ -3757,29 +3845,29 @@ i32.ne br_if $~lib/util/string/parseExp|inlined.0 drop - local.get $1 + local.get $0 i32.const 2 i32.add - local.tee $5 + local.tee $2 i32.load16_u local.tee $0 i32.const 45 i32.eq if (result i32) i32.const 0 - local.get $15 + local.get $6 i32.const 1 i32.sub - local.tee $15 + local.tee $6 i32.eqz br_if $~lib/util/string/parseExp|inlined.0 drop i32.const -1 - local.set $2 - local.get $5 + local.set $1 + local.get $2 i32.const 2 i32.add - local.tee $5 + local.tee $2 i32.load16_u else local.get $0 @@ -3787,17 +3875,17 @@ i32.eq if (result i32) i32.const 0 - local.get $15 + local.get $6 i32.const 1 i32.sub - local.tee $15 + local.tee $6 i32.eqz br_if $~lib/util/string/parseExp|inlined.0 drop - local.get $5 + local.get $2 i32.const 2 i32.add - local.tee $5 + local.tee $2 i32.load16_u else local.get $0 @@ -3810,17 +3898,17 @@ i32.eq if i32.const 0 - local.get $15 + local.get $6 i32.const 1 i32.sub - local.tee $15 + local.tee $6 i32.eqz br_if $~lib/util/string/parseExp|inlined.0 drop - local.get $5 + local.get $2 i32.const 2 i32.add - local.tee $5 + local.tee $2 i32.load16_u local.set $0 br $while-continue|4 @@ -3835,31 +3923,31 @@ i32.const 10 i32.lt_u i32.const 0 - local.get $15 + local.get $6 select if - local.get $2 + local.get $1 i32.const 3200 i32.mul - local.get $4 + local.get $3 i32.const 3200 i32.ge_s br_if $~lib/util/string/parseExp|inlined.0 drop local.get $0 - local.get $4 + local.get $3 i32.const 10 i32.mul i32.add - local.set $4 - local.get $15 + local.set $3 + local.get $6 i32.const 1 i32.sub - local.set $15 - local.get $5 + local.set $6 + local.get $2 i32.const 2 i32.add - local.tee $5 + local.tee $2 i32.load16_u i32.const 48 i32.sub @@ -3867,16 +3955,15 @@ br $for-loop|5 end end - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.mul end - local.get $9 i32.add local.tee $0 i32.const -342 i32.lt_s - local.get $14 + local.get $7 i64.eqz select br_if $~lib/util/string/scientific|inlined.0 @@ -3887,9 +3974,9 @@ i32.gt_s br_if $~lib/util/string/scientific|inlined.0 drop - local.get $14 + local.get $7 f64.convert_i64_u - local.tee $10 + local.tee $11 local.get $0 i32.eqz br_if $~lib/util/string/scientific|inlined.0 @@ -3903,7 +3990,7 @@ i32.gt_s select if - local.get $10 + local.get $11 local.get $0 i32.const 3 i32.shl @@ -3911,20 +3998,20 @@ i32.add f64.load f64.mul - local.set $10 + local.set $11 i32.const 22 local.set $0 end - local.get $14 + local.get $7 i64.const 9007199254740991 i64.le_u if (result i32) local.get $0 i32.const 31 i32.shr_s - local.tee $2 + local.tee $8 local.get $0 - local.get $2 + local.get $8 i32.add i32.xor i32.const 22 @@ -3937,7 +4024,7 @@ i32.const 0 i32.gt_s if - local.get $10 + local.get $11 local.get $0 i32.const 3 i32.shl @@ -3947,7 +4034,7 @@ f64.mul br $~lib/util/string/scientific|inlined.0 end - local.get $10 + local.get $11 i32.const 0 local.get $0 i32.sub @@ -3962,32 +4049,32 @@ i32.const 0 i32.lt_s if (result f64) - local.get $14 - local.get $14 + local.get $7 + local.get $7 i64.clz - local.tee $12 + local.tee $9 i64.shl - local.set $14 + local.set $7 local.get $0 - local.tee $2 + local.tee $1 i64.extend_i32_s - local.get $12 + local.get $9 i64.sub - local.set $12 + local.set $9 loop $for-loop|6 - local.get $2 + local.get $1 i32.const -14 i32.le_s if - local.get $14 + local.get $7 i64.const 6103515625 i64.rem_u - local.get $14 + local.get $7 i64.const 6103515625 i64.div_u - local.tee $8 + local.tee $7 i64.clz - local.tee $11 + local.tee $10 i64.const 18 i64.sub i64.shl @@ -3996,91 +4083,91 @@ f64.mul f64.nearest i64.trunc_f64_u - local.get $8 - local.get $11 + local.get $7 + local.get $10 i64.shl i64.add - local.set $14 - local.get $12 - local.get $11 + local.set $7 + local.get $9 + local.get $10 i64.sub - local.set $12 - local.get $2 + local.set $9 + local.get $1 i32.const 14 i32.add - local.set $2 + local.set $1 br $for-loop|6 end end - local.get $14 + local.get $7 i32.const 0 - local.get $2 + local.get $1 i32.sub call $~lib/math/ipow32 i64.extend_i32_s - local.tee $8 + local.tee $14 i64.div_u - local.tee $6 + local.tee $15 i64.clz - local.set $11 + local.set $10 + local.get $7 local.get $14 - local.get $8 i64.rem_u f64.convert_i64_u i64.reinterpret_f64 - local.get $11 + local.get $10 i64.const 52 i64.shl i64.add f64.reinterpret_i64 - local.get $8 + local.get $14 f64.convert_i64_u f64.div i64.trunc_f64_u - local.get $6 - local.get $11 + local.get $15 + local.get $10 i64.shl i64.add f64.convert_i64_u - local.get $12 - local.get $11 + local.get $9 + local.get $10 i64.sub i32.wrap_i64 call $~lib/math/NativeMath.scalbn else - local.get $14 - local.get $14 + local.get $7 + local.get $7 i64.ctz - local.tee $12 + local.tee $9 i64.shr_u - local.set $14 - local.get $12 + local.set $7 + local.get $9 local.get $0 - local.tee $4 + local.tee $3 i64.extend_i32_s i64.add global.set $~lib/util/string/__fixmulShift loop $for-loop|7 - local.get $4 + local.get $3 i32.const 13 i32.ge_s if i64.const 32 - local.get $14 + local.get $7 i64.const 32 i64.shr_u i64.const 1220703125 i64.mul - local.get $14 + local.get $7 i64.const 4294967295 i64.and i64.const 1220703125 i64.mul - local.tee $14 + local.tee $7 i64.const 32 i64.shr_u i64.add - local.tee $12 + local.tee $9 i64.const 32 i64.shr_u i32.wrap_i64 @@ -4088,11 +4175,11 @@ local.tee $0 i64.extend_i32_u i64.sub - local.tee $11 + local.tee $10 global.get $~lib/util/string/__fixmulShift i64.add global.set $~lib/util/string/__fixmulShift - local.get $14 + local.get $7 local.get $0 i64.extend_i32_u i64.shl @@ -4100,46 +4187,46 @@ i64.shr_u i64.const 1 i64.and - local.get $12 + local.get $9 local.get $0 i64.extend_i32_u i64.shl - local.get $14 + local.get $7 i64.const 4294967295 i64.and - local.get $11 + local.get $10 i64.shr_u i64.or i64.add - local.set $14 - local.get $4 + local.set $7 + local.get $3 i32.const 13 i32.sub - local.set $4 + local.set $3 br $for-loop|7 end end - local.get $4 + local.get $3 call $~lib/math/ipow32 local.tee $0 i64.extend_i32_u - local.get $14 + local.get $7 i64.const 4294967295 i64.and i64.mul - local.set $12 + local.set $9 i64.const 32 local.get $0 i64.extend_i32_u - local.get $14 + local.get $7 i64.const 32 i64.shr_u i64.mul - local.get $12 + local.get $9 i64.const 32 i64.shr_u i64.add - local.tee $14 + local.tee $7 i64.const 32 i64.shr_u i32.wrap_i64 @@ -4147,11 +4234,11 @@ local.tee $0 i64.extend_i32_u i64.sub - local.tee $11 + local.tee $10 global.get $~lib/util/string/__fixmulShift i64.add global.set $~lib/util/string/__fixmulShift - local.get $12 + local.get $9 local.get $0 i64.extend_i32_u i64.shl @@ -4159,14 +4246,14 @@ i64.shr_u i64.const 1 i64.and - local.get $14 + local.get $7 local.get $0 i64.extend_i32_u i64.shl - local.get $12 + local.get $9 i64.const 4294967295 i64.and - local.get $11 + local.get $10 i64.shr_u i64.or i64.add @@ -4177,13 +4264,13 @@ end end end - local.get $3 + local.get $4 call $~lib/rt/pure/__release - local.get $7 + local.get $12 f64.copysign return end - local.get $3 + local.get $4 call $~lib/rt/pure/__release f64.const nan:0x8000000000000 ) @@ -4227,16 +4314,24 @@ i32.const 1648 local.set $0 end - local.get $3 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.tee $4 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.const 1 i32.shl local.tee $6 + local.get $3 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $4 i32.add local.tee $1 i32.eqz @@ -4246,9 +4341,12 @@ i32.const 1280 br $__inlined_func$~lib/string/String#concat end + call $~lib/rt/tlsf/maybeInitialize local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $1 local.get $3 @@ -4306,12 +4404,20 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 i32.eqz br_if $folding-inner0 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $3 i32.eqz if @@ -4368,12 +4474,20 @@ select br_if $folding-inner0 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 i32.eqz br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $3 i32.eqz if @@ -4441,7 +4555,11 @@ (local $3 i32) i32.const 1 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 i64.extend_i32_s local.get $1 @@ -4478,15 +4596,18 @@ call $~lib/rt/pure/__retain return end + call $~lib/rt/tlsf/maybeInitialize local.get $1 local.get $2 i32.mul i32.const 1 i32.shl i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $0 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $3 + local.get $0 local.get $2 i32.const 1 i32.shl @@ -4510,10 +4631,18 @@ local.set $2 block $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $3 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $5 i32.le_u if @@ -4544,7 +4673,11 @@ i32.xor if local.get $2 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $6 local.get $3 local.get $5 @@ -4553,11 +4686,14 @@ i32.add local.tee $3 if + call $~lib/rt/tlsf/maybeInitialize local.get $3 i32.const 1 i32.shl i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $3 local.get $0 local.get $4 @@ -4791,16 +4927,24 @@ (local $10 i32) local.get $1 call $~lib/rt/pure/__retain - local.set $7 + local.set $8 local.get $2 call $~lib/rt/pure/__retain - local.set $5 + local.set $6 block $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $4 - local.get $7 - call $~lib/string/String#get:length + local.get $8 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $10 i32.le_u if @@ -4811,9 +4955,9 @@ local.get $0 call $~lib/rt/pure/__retain else - local.get $5 + local.get $6 local.get $0 - local.get $7 + local.get $8 local.get $0 call $~lib/string/String.__eq select @@ -4822,8 +4966,12 @@ local.set $0 br $folding-inner0 end - local.get $5 - call $~lib/string/String#get:length + local.get $6 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.set $2 local.get $10 i32.eqz @@ -4836,6 +4984,7 @@ local.set $0 br $folding-inner0 end + call $~lib/rt/tlsf/maybeInitialize local.get $4 local.get $2 local.get $4 @@ -4846,9 +4995,11 @@ i32.const 1 i32.shl i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $3 - local.get $5 + local.get $6 local.get $2 i32.const 1 i32.shl @@ -4880,7 +5031,7 @@ i32.const 1 i32.shl i32.add - local.get $5 + local.get $6 local.get $2 i32.const 1 i32.shl @@ -4905,39 +5056,42 @@ local.get $10 i32.eq if + call $~lib/rt/tlsf/maybeInitialize local.get $4 i32.const 1 i32.shl - local.tee $4 + local.tee $3 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 local.get $0 - local.get $4 + local.get $3 call $~lib/memory/memory.copy loop $while-continue|1 local.get $0 - local.get $7 - local.get $6 + local.get $8 + local.get $5 call $~lib/string/String#indexOf - local.tee $4 + local.tee $3 i32.const -1 i32.xor if local.get $1 - local.get $4 + local.get $3 i32.const 1 i32.shl i32.add - local.get $5 + local.get $6 local.get $2 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $4 + local.get $3 local.get $10 i32.add - local.set $6 + local.set $5 br $while-continue|1 end end @@ -4950,8 +5104,8 @@ local.set $1 loop $while-continue|2 local.get $0 - local.get $7 - local.get $6 + local.get $8 + local.get $5 call $~lib/string/String#indexOf local.tee $9 i32.const -1 @@ -4960,14 +5114,17 @@ local.get $3 i32.eqz if + call $~lib/rt/tlsf/maybeInitialize local.get $4 i32.const 1 i32.shl i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $3 end - local.get $8 + local.get $7 local.get $1 i32.gt_u if @@ -4982,49 +5139,49 @@ local.set $3 end local.get $3 - local.get $8 + local.get $7 i32.const 1 i32.shl i32.add local.get $0 - local.get $6 + local.get $5 i32.const 1 i32.shl i32.add local.get $9 - local.get $6 + local.get $5 i32.sub - local.tee $6 + local.tee $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $3 - local.get $6 - local.get $8 + local.get $5 + local.get $7 i32.add - local.tee $6 + local.tee $5 i32.const 1 i32.shl i32.add - local.get $5 + local.get $6 local.get $2 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $2 - local.get $6 + local.get $5 i32.add - local.set $8 + local.set $7 local.get $9 local.get $10 i32.add - local.set $6 + local.set $5 br $while-continue|2 end end - local.get $8 + local.get $7 if - local.get $8 + local.get $7 local.get $1 i32.gt_u if @@ -5039,17 +5196,17 @@ local.set $3 end local.get $4 - local.get $6 + local.get $5 i32.sub local.tee $2 if local.get $3 - local.get $8 + local.get $7 i32.const 1 i32.shl i32.add local.get $0 - local.get $6 + local.get $5 i32.const 1 i32.shl i32.add @@ -5060,7 +5217,7 @@ end local.get $1 local.get $2 - local.get $8 + local.get $7 i32.add local.tee $0 i32.gt_u @@ -5079,22 +5236,26 @@ end local.get $0 call $~lib/rt/pure/__retain - local.get $7 + local.get $8 call $~lib/rt/pure/__release - local.get $5 + local.get $6 call $~lib/rt/pure/__release return end - local.get $7 + local.get $8 call $~lib/rt/pure/__release - local.get $5 + local.get $6 call $~lib/rt/pure/__release local.get $0 ) (func $~lib/string/String#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.set $3 local.get $1 i32.const 0 @@ -5148,12 +5309,15 @@ i32.const 1280 return end + call $~lib/rt/tlsf/maybeInitialize local.get $2 i32.const 1 i32.shl local.tee $2 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $3 local.get $0 local.get $1 @@ -5175,7 +5339,11 @@ select local.tee $2 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $3 local.get $1 i32.const 0 @@ -5208,9 +5376,12 @@ i32.const 1280 return end + call $~lib/rt/tlsf/maybeInitialize local.get $2 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $3 local.get $0 local.get $1 @@ -5233,7 +5404,11 @@ select local.tee $3 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $1 local.get $3 local.get $1 @@ -5289,9 +5464,12 @@ call $~lib/rt/pure/__retain return end + call $~lib/rt/tlsf/maybeInitialize local.get $3 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 local.get $0 local.get $2 @@ -5305,16 +5483,22 @@ (local $1 i32) (local $2 i32) (local $3 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 16 i32.const 3 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 2 i32.shl local.tee $2 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $3 call $~lib/rt/pure/__retain i32.store @@ -5580,220 +5764,231 @@ local.get $1 call $~lib/rt/pure/__retain local.set $1 - block $folding-inner0 - local.get $2 - i32.eqz - br_if $folding-inner0 - local.get $1 - i32.eqz - if - i32.const 1 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - 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 + block $folding-inner1 + block $folding-inner0 local.get $2 - return - end - local.get $0 - call $~lib/string/String#get:length - local.set $4 - i32.const 2147483647 - local.get $2 - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - local.get $1 - call $~lib/string/String#get:length - local.tee $6 - if - local.get $4 + i32.eqz + br_if $folding-inner0 + local.get $1 i32.eqz if i32.const 1 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $0 + local.tee $2 i32.load offset=4 - i32.const 1280 - i32.store - local.get $1 - call $~lib/rt/pure/__release local.get $0 - return + call $~lib/rt/pure/__retain + i32.store + br $folding-inner1 end - else - local.get $4 - i32.eqz - br_if $folding-inner0 - local.get $4 + local.get $0 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.set $3 + i32.const 2147483647 local.get $2 - local.get $4 local.get $2 + i32.const 0 i32.lt_s select - local.tee $5 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $4 - i32.load offset=4 local.set $6 - loop $for-loop|0 + local.get $1 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $2 + local.set $8 + local.get $2 + if local.get $3 - local.get $5 - i32.lt_s + i32.eqz if - i32.const 2 - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $2 - local.get $0 - local.get $3 i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $6 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - local.get $2 + call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - drop - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + local.tee $0 + i32.load offset=4 + i32.const 1280 + i32.store + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + return end - end - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - end - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $3 - loop $while-continue|1 - local.get $0 - local.get $1 - local.get $5 - call $~lib/string/String#indexOf - local.tee $8 - i32.const -1 - i32.xor - if - local.get $8 + else + local.get $3 + i32.eqz + br_if $folding-inner0 + local.get $3 + local.get $6 + local.get $3 + local.get $6 + i32.lt_s + select + local.tee $5 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $3 + i32.load offset=4 + local.set $6 + loop $for-loop|0 + local.get $4 + local.get $5 + i32.lt_s + if + call $~lib/rt/tlsf/maybeInitialize + i32.const 2 + i32.const 1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $6 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + 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.set $2 + loop $while-continue|1 + local.get $0 + local.get $1 local.get $5 - i32.sub - local.tee $7 - i32.const 0 - i32.gt_s + call $~lib/string/String#indexOf + local.tee $4 + i32.const -1 + i32.xor if - local.get $7 - i32.const 1 - i32.shl - local.tee $7 - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $9 - local.get $0 + local.get $4 local.get $5 + i32.sub + local.tee $7 + i32.const 0 + i32.gt_s + if + call $~lib/rt/tlsf/maybeInitialize + local.get $7 + i32.const 1 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $9 + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $7 + call $~lib/memory/memory.copy + local.get $2 + local.get $9 + call $~lib/array/Array<~lib/string/String>#push + else + local.get $2 + i32.const 1280 + call $~lib/array/Array<~lib/string/String>#push + end + local.get $10 i32.const 1 - i32.shl i32.add - local.get $7 - call $~lib/memory/memory.copy - local.get $3 - local.get $9 - call $~lib/array/Array<~lib/string/String>#push - else - local.get $3 - i32.const 1280 - call $~lib/array/Array<~lib/string/String>#push + local.tee $10 + local.get $6 + i32.eq + br_if $folding-inner1 + local.get $4 + local.get $8 + i32.add + local.set $5 + br $while-continue|1 end + end + local.get $5 + i32.eqz + if local.get $2 - local.get $10 + local.get $0 + call $~lib/array/Array<~lib/string/String>#push + br $folding-inner1 + end + local.get $3 + local.get $5 + i32.sub + local.tee $3 + i32.const 0 + i32.gt_s + if + call $~lib/rt/tlsf/maybeInitialize + local.get $3 + i32.const 1 + i32.shl + local.tee $3 i32.const 1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 i32.add - local.tee $10 - i32.eq - if - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - end - local.get $6 - local.get $8 + local.tee $4 + local.get $0 + local.get $5 + i32.const 1 + i32.shl i32.add - local.set $5 - br $while-continue|1 + local.get $3 + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + call $~lib/array/Array<~lib/string/String>#push + else + local.get $2 + i32.const 1280 + call $~lib/array/Array<~lib/string/String>#push end + br $folding-inner1 end - 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 $4 - local.get $5 - i32.sub - local.tee $2 i32.const 0 - i32.gt_s - if - local.get $2 - i32.const 1 - i32.shl - local.tee $2 - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $4 - local.get $0 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $2 - call $~lib/memory/memory.copy - local.get $3 - 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 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain 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 + local.get $2 ) (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -6107,7 +6302,7 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $2 + local.tee $3 if i32.const 0 local.get $0 @@ -6120,14 +6315,19 @@ if local.get $0 call $~lib/util/number/decimalCount32 - local.get $2 + local.get $3 i32.add local.tee $1 i32.const 1 i32.shl + local.set $2 + call $~lib/rt/tlsf/maybeInitialize + local.get $2 i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $3 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 local.get $0 local.get $1 call $~lib/util/number/utoa_dec_simple @@ -6136,7 +6336,8 @@ i32.const 16 i32.eq if - local.get $2 + call $~lib/rt/tlsf/maybeInitialize + local.get $3 i32.const 31 local.get $0 i32.clz @@ -6150,8 +6351,10 @@ i32.const 1 i32.shl i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $3 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 local.get $0 local.get $1 call $~lib/util/number/utoa_hex_simple @@ -6160,14 +6363,19 @@ i64.extend_i32_u local.get $1 call $~lib/util/number/ulog_base - local.get $2 + local.get $3 i32.add local.tee $4 i32.const 1 i32.shl + local.set $2 + call $~lib/rt/tlsf/maybeInitialize + local.get $2 i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $3 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 local.get $0 i64.extend_i32_u local.get $4 @@ -6175,13 +6383,13 @@ call $~lib/util/number/utoa64_any_core end end - local.get $2 + local.get $3 if - local.get $3 + local.get $2 i32.const 45 i32.store16 end - local.get $3 + local.get $2 call $~lib/rt/pure/__retain ) (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) @@ -6218,8 +6426,13 @@ local.tee $1 i32.const 1 i32.shl + local.set $2 + call $~lib/rt/tlsf/maybeInitialize + local.get $2 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 local.get $1 @@ -6229,6 +6442,7 @@ i32.const 16 i32.eq if + call $~lib/rt/tlsf/maybeInitialize i32.const 31 local.get $0 i32.clz @@ -6241,7 +6455,9 @@ i32.const 1 i32.shl i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 local.get $1 @@ -6254,8 +6470,13 @@ local.tee $3 i32.const 1 i32.shl + local.set $2 + call $~lib/rt/tlsf/maybeInitialize + local.get $2 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 i64.extend_i32_u @@ -6417,8 +6638,13 @@ local.tee $3 i32.const 1 i32.shl + local.set $2 + call $~lib/rt/tlsf/maybeInitialize + local.get $2 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $1 local.get $3 @@ -6429,8 +6655,13 @@ local.tee $1 i32.const 1 i32.shl + local.set $2 + call $~lib/rt/tlsf/maybeInitialize + local.get $2 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 local.get $1 @@ -6441,6 +6672,7 @@ i32.const 16 i32.eq if + call $~lib/rt/tlsf/maybeInitialize i32.const 63 local.get $0 i64.clz @@ -6454,7 +6686,9 @@ i32.const 1 i32.shl i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 local.get $1 @@ -6466,8 +6700,13 @@ local.tee $3 i32.const 1 i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc + local.set $2 + call $~lib/rt/tlsf/maybeInitialize + local.get $2 + i32.const 1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 local.get $3 @@ -6508,7 +6747,7 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.tee $2 + local.tee $3 if i64.const 0 local.get $0 @@ -6527,28 +6766,38 @@ i32.wrap_i64 local.tee $1 call $~lib/util/number/decimalCount32 - local.get $2 + local.get $3 i32.add local.tee $4 i32.const 1 i32.shl + local.set $2 + call $~lib/rt/tlsf/maybeInitialize + local.get $2 i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $3 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 local.get $1 local.get $4 call $~lib/util/number/utoa_dec_simple else local.get $0 call $~lib/util/number/decimalCount64High - local.get $2 + local.get $3 i32.add local.tee $1 i32.const 1 i32.shl + local.set $2 + call $~lib/rt/tlsf/maybeInitialize + local.get $2 i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $3 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 local.get $0 local.get $1 call $~lib/util/number/utoa_dec_simple @@ -6558,7 +6807,8 @@ i32.const 16 i32.eq if - local.get $2 + call $~lib/rt/tlsf/maybeInitialize + local.get $3 i32.const 63 local.get $0 i64.clz @@ -6573,8 +6823,10 @@ i32.const 1 i32.shl i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $3 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 local.get $0 local.get $1 call $~lib/util/number/utoa_hex_simple @@ -6582,27 +6834,32 @@ local.get $0 local.get $1 call $~lib/util/number/ulog_base - local.get $2 + local.get $3 i32.add local.tee $4 i32.const 1 i32.shl + local.set $2 + call $~lib/rt/tlsf/maybeInitialize + local.get $2 i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $3 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 local.get $0 local.get $4 local.get $1 call $~lib/util/number/utoa64_any_core end end - local.get $2 + local.get $3 if - local.get $3 + local.get $2 i32.const 45 i32.store16 end - local.get $3 + local.get $2 call $~lib/rt/pure/__retain ) (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) @@ -7545,9 +7802,12 @@ call $~lib/rt/pure/__retain return end + call $~lib/rt/tlsf/maybeInitialize i32.const 56 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 local.get $0 call $~lib/util/number/dtoa_core @@ -7575,9 +7835,9 @@ (local $3 f64) (local $4 i32) (local $5 i32) - (local $6 f32) + (local $6 i32) (local $7 i32) - (local $8 i32) + (local $8 f32) (local $9 i32) (local $10 i32) (local $11 i32) @@ -7917,7 +8177,11 @@ unreachable end global.get $std/string/str - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.const 16 i32.ne if @@ -7933,7 +8197,11 @@ i32.const 0 global.get $std/string/str local.tee $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ge_u br_if $__inlined_func$~lib/string/String#charCodeAt drop @@ -7985,7 +8253,7 @@ global.set $~argumentsLength i32.const 0 call $~lib/string/String.fromCharCode@varargs - local.tee $7 + local.tee $9 i32.const 1296 call $~lib/string/String.__eq i32.eqz @@ -8001,7 +8269,7 @@ global.set $~argumentsLength i32.const 54 call $~lib/string/String.fromCharCode@varargs - local.tee $8 + local.tee $10 i32.const 1472 call $~lib/string/String.__eq i32.eqz @@ -8017,7 +8285,7 @@ global.set $~argumentsLength i32.const 65590 call $~lib/string/String.fromCharCode@varargs - local.tee $9 + local.tee $11 i32.const 1472 call $~lib/string/String.__eq i32.eqz @@ -8032,7 +8300,7 @@ i32.const 55296 i32.const 57088 call $~lib/string/String.fromCharCode - local.tee $10 + local.tee $12 i32.const 1504 call $~lib/string/String.__eq i32.eqz @@ -8046,7 +8314,7 @@ end i32.const 0 call $~lib/string/String.fromCodePoint - local.tee $11 + local.tee $13 i32.const 1296 call $~lib/string/String.__eq i32.eqz @@ -8060,7 +8328,7 @@ end i32.const 54 call $~lib/string/String.fromCodePoint - local.tee $12 + local.tee $14 i32.const 1472 call $~lib/string/String.__eq i32.eqz @@ -8074,7 +8342,7 @@ end i32.const 119558 call $~lib/string/String.fromCodePoint - local.tee $13 + local.tee $15 i32.const 1584 call $~lib/string/String.__eq i32.eqz @@ -8086,51 +8354,56 @@ call $~lib/builtins/abort unreachable end - global.get $std/string/str - local.set $5 - i32.const 1616 - if (result i32) - i32.const 1616 - else + block $__inlined_func$~lib/string/String#startsWith (result i32) + global.get $std/string/str + local.set $2 i32.const 1616 - call $~lib/rt/pure/__release - i32.const 0 - end - drop - block $__inlined_func$~lib/string/String#startsWith - i32.const 0 - local.get $5 - call $~lib/string/String#get:length - local.tee $2 + if (result i32) + i32.const 1616 + else + i32.const 1616 + call $~lib/rt/pure/__release + i32.const 1648 + end + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $0 + local.set $4 + local.get $0 i32.const 0 local.get $2 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $0 + i32.const 0 + local.get $0 i32.lt_s select - local.tee $4 - i32.const 1616 - call $~lib/string/String#get:length - local.tee $0 + local.tee $5 i32.add - local.get $2 + local.get $0 i32.gt_s if i32.const 1616 call $~lib/rt/pure/__release i32.const 0 - local.set $0 br $__inlined_func$~lib/string/String#startsWith end + local.get $2 local.get $5 - local.get $4 i32.const 1616 - local.get $0 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $0 i32.const 1616 call $~lib/rt/pure/__release end - local.get $0 i32.eqz if i32.const 0 @@ -8141,41 +8414,49 @@ unreachable end global.get $std/string/str - local.set $4 + local.set $1 block $__inlined_func$~lib/string/String#endsWith + i32.const 1676 + i32.load + i32.const 1 + i32.shr_u + local.tee $2 + local.set $4 i32.const 536870904 - local.get $4 - call $~lib/string/String#get:length - local.tee $0 + local.get $1 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $5 i32.const 536870904 - local.get $0 + local.get $5 i32.lt_s select - i32.const 1680 - call $~lib/string/String#get:length - local.tee $1 + local.get $2 i32.sub - local.tee $0 + local.tee $2 i32.const 0 i32.lt_s if i32.const 1680 call $~lib/rt/pure/__release i32.const 0 - local.set $0 + local.set $1 br $__inlined_func$~lib/string/String#endsWith end - local.get $4 - local.get $0 - i32.const 1680 local.get $1 + local.get $2 + i32.const 1680 + local.get $4 call $~lib/util/string/compareImpl i32.eqz - local.set $0 + local.set $1 i32.const 1680 call $~lib/rt/pure/__release end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -8206,7 +8487,7 @@ i32.const 0 i32.const 1744 call $~lib/string/String#padStart - local.tee $14 + local.tee $4 global.get $std/string/str call $~lib/string/String.__eq i32.eqz @@ -8222,7 +8503,7 @@ i32.const 15 i32.const 1744 call $~lib/string/String#padStart - local.tee $15 + local.tee $5 global.get $std/string/str call $~lib/string/String.__eq i32.eqz @@ -8621,7 +8902,11 @@ i32.const 2147483647 call $~lib/string/String#lastIndexOf global.get $std/string/str - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne if i32.const 0 @@ -9462,11 +9747,11 @@ i32.const 0 call $~lib/util/string/strtol f32.demote_f64 - local.set $6 + local.set $8 i32.const 3536 call $~lib/rt/pure/__release - local.get $6 - local.get $6 + local.get $8 + local.get $8 f32.eq if i32.const 0 @@ -11689,17 +11974,17 @@ end i32.const 65377 call $~lib/string/String.fromCodePoint - local.tee $5 + local.tee $1 i32.const 55296 call $~lib/string/String.fromCodePoint - local.tee $2 + local.tee $0 i32.const 56322 call $~lib/string/String.fromCodePoint - local.tee $4 + local.tee $2 call $~lib/string/String.__concat - local.tee $1 + local.tee $6 call $~lib/rt/pure/__retain - local.tee $0 + local.tee $7 call $~lib/string/String.__gt i32.eqz if @@ -11710,18 +11995,20 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $1 call $~lib/rt/pure/__release - local.get $2 + local.get $0 call $~lib/rt/pure/__release - local.get $4 + local.get $2 call $~lib/rt/pure/__release - local.get $1 + local.get $6 call $~lib/rt/pure/__release - local.get $0 + local.get $7 call $~lib/rt/pure/__release - i32.const 1872 - call $~lib/string/String#get:length + i32.const 1868 + i32.load + i32.const 1 + i32.shr_u i32.const 3 i32.ne if @@ -11735,7 +12022,7 @@ i32.const 1280 i32.const 100 call $~lib/string/String#repeat - local.tee $44 + local.tee $6 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -11750,7 +12037,7 @@ i32.const 1328 i32.const 0 call $~lib/string/String#repeat - local.tee $45 + local.tee $7 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -11765,7 +12052,7 @@ i32.const 1328 i32.const 1 call $~lib/string/String#repeat - local.tee $46 + local.tee $44 i32.const 1328 call $~lib/string/String.__eq i32.eqz @@ -11780,7 +12067,7 @@ i32.const 1328 i32.const 2 call $~lib/string/String#repeat - local.tee $47 + local.tee $45 i32.const 12368 call $~lib/string/String.__eq i32.eqz @@ -11795,7 +12082,7 @@ i32.const 1328 i32.const 3 call $~lib/string/String#repeat - local.tee $48 + local.tee $46 i32.const 12448 call $~lib/string/String.__eq i32.eqz @@ -11810,7 +12097,7 @@ i32.const 11952 i32.const 4 call $~lib/string/String#repeat - local.tee $49 + local.tee $47 i32.const 12480 call $~lib/string/String.__eq i32.eqz @@ -11825,7 +12112,7 @@ i32.const 1328 i32.const 5 call $~lib/string/String#repeat - local.tee $50 + local.tee $48 i32.const 12512 call $~lib/string/String.__eq i32.eqz @@ -11840,7 +12127,7 @@ i32.const 1328 i32.const 6 call $~lib/string/String#repeat - local.tee $51 + local.tee $49 i32.const 12544 call $~lib/string/String.__eq i32.eqz @@ -11855,7 +12142,7 @@ i32.const 1328 i32.const 7 call $~lib/string/String#repeat - local.tee $52 + local.tee $50 i32.const 12576 call $~lib/string/String.__eq i32.eqz @@ -11871,7 +12158,7 @@ i32.const 1280 i32.const 1280 call $~lib/string/String#replace - local.tee $53 + local.tee $51 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -11887,7 +12174,7 @@ i32.const 1280 i32.const 3472 call $~lib/string/String#replace - local.tee $54 + local.tee $52 i32.const 3472 call $~lib/string/String.__eq i32.eqz @@ -11903,7 +12190,7 @@ i32.const 3472 i32.const 1280 call $~lib/string/String#replace - local.tee $55 + local.tee $53 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -11919,7 +12206,7 @@ i32.const 1280 i32.const 1280 call $~lib/string/String#replace - local.tee $56 + local.tee $54 i32.const 3472 call $~lib/string/String.__eq i32.eqz @@ -11935,7 +12222,7 @@ i32.const 3440 i32.const 3472 call $~lib/string/String#replace - local.tee $57 + local.tee $55 i32.const 1808 call $~lib/string/String.__eq i32.eqz @@ -11951,7 +12238,7 @@ i32.const 1808 i32.const 3472 call $~lib/string/String#replace - local.tee $58 + local.tee $56 i32.const 3472 call $~lib/string/String.__eq i32.eqz @@ -11967,7 +12254,7 @@ i32.const 2256 i32.const 3472 call $~lib/string/String#replace - local.tee $59 + local.tee $57 i32.const 1808 call $~lib/string/String.__eq i32.eqz @@ -11983,7 +12270,7 @@ i32.const 11952 i32.const 11952 call $~lib/string/String#replace - local.tee $60 + local.tee $58 i32.const 1808 call $~lib/string/String.__eq i32.eqz @@ -11999,7 +12286,7 @@ i32.const 3440 i32.const 3472 call $~lib/string/String#replace - local.tee $61 + local.tee $59 i32.const 12640 call $~lib/string/String.__eq i32.eqz @@ -12015,7 +12302,7 @@ i32.const 1280 i32.const 3472 call $~lib/string/String#replace - local.tee $62 + local.tee $60 i32.const 12672 call $~lib/string/String.__eq i32.eqz @@ -12031,7 +12318,7 @@ i32.const 12736 i32.const 3472 call $~lib/string/String#replace - local.tee $63 + local.tee $61 i32.const 12672 call $~lib/string/String.__eq i32.eqz @@ -12047,7 +12334,7 @@ i32.const 12768 i32.const 12800 call $~lib/string/String#replace - local.tee $64 + local.tee $62 i32.const 12832 call $~lib/string/String.__eq i32.eqz @@ -12063,7 +12350,7 @@ i32.const 12768 i32.const 1280 call $~lib/string/String#replace - local.tee $65 + local.tee $63 i32.const 11952 call $~lib/string/String.__eq i32.eqz @@ -12079,7 +12366,7 @@ i32.const 1280 i32.const 1808 call $~lib/string/String#replaceAll - local.tee $66 + local.tee $64 i32.const 1808 call $~lib/string/String.__eq i32.eqz @@ -12095,7 +12382,7 @@ i32.const 3440 i32.const 3472 call $~lib/string/String#replaceAll - local.tee $67 + local.tee $65 i32.const 1808 call $~lib/string/String.__eq i32.eqz @@ -12111,7 +12398,7 @@ i32.const 1808 i32.const 3472 call $~lib/string/String#replaceAll - local.tee $68 + local.tee $66 i32.const 12800 call $~lib/string/String.__eq i32.eqz @@ -12127,7 +12414,7 @@ i32.const 1808 i32.const 3472 call $~lib/string/String#replaceAll - local.tee $69 + local.tee $67 i32.const 12912 call $~lib/string/String.__eq i32.eqz @@ -12143,7 +12430,7 @@ i32.const 11952 i32.const 11952 call $~lib/string/String#replaceAll - local.tee $70 + local.tee $68 i32.const 2000 call $~lib/string/String.__eq i32.eqz @@ -12159,7 +12446,7 @@ i32.const 1328 i32.const 12912 call $~lib/string/String#replaceAll - local.tee $71 + local.tee $69 i32.const 12976 call $~lib/string/String.__eq i32.eqz @@ -12175,7 +12462,7 @@ i32.const 11952 i32.const 12800 call $~lib/string/String#replaceAll - local.tee $72 + local.tee $70 i32.const 13024 call $~lib/string/String.__eq i32.eqz @@ -12191,7 +12478,7 @@ i32.const 13088 i32.const 12800 call $~lib/string/String#replaceAll - local.tee $73 + local.tee $71 i32.const 13120 call $~lib/string/String.__eq i32.eqz @@ -12207,7 +12494,7 @@ i32.const 2256 i32.const 3472 call $~lib/string/String#replaceAll - local.tee $74 + local.tee $72 i32.const 1808 call $~lib/string/String.__eq i32.eqz @@ -12223,7 +12510,7 @@ i32.const 13152 i32.const 12800 call $~lib/string/String#replaceAll - local.tee $75 + local.tee $73 i32.const 2256 call $~lib/string/String.__eq i32.eqz @@ -12239,7 +12526,7 @@ i32.const 13184 i32.const 3472 call $~lib/string/String#replaceAll - local.tee $76 + local.tee $74 i32.const 13216 call $~lib/string/String.__eq i32.eqz @@ -12255,7 +12542,7 @@ i32.const 11952 i32.const 3472 call $~lib/string/String#replaceAll - local.tee $77 + local.tee $75 i32.const 3472 call $~lib/string/String.__eq i32.eqz @@ -12271,7 +12558,7 @@ i32.const 3440 i32.const 3472 call $~lib/string/String#replaceAll - local.tee $78 + local.tee $76 i32.const 13248 call $~lib/string/String.__eq i32.eqz @@ -12287,7 +12574,7 @@ i32.const 1280 i32.const 1280 call $~lib/string/String#replaceAll - local.tee $79 + local.tee $77 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -12303,7 +12590,7 @@ i32.const 1280 i32.const 3472 call $~lib/string/String#replaceAll - local.tee $80 + local.tee $78 i32.const 3472 call $~lib/string/String.__eq i32.eqz @@ -12319,7 +12606,7 @@ i32.const 3472 i32.const 1280 call $~lib/string/String#replaceAll - local.tee $81 + local.tee $79 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -12335,7 +12622,7 @@ i32.const 1280 i32.const 1280 call $~lib/string/String#replaceAll - local.tee $82 + local.tee $80 i32.const 3472 call $~lib/string/String.__eq i32.eqz @@ -12351,7 +12638,7 @@ i32.const 1808 i32.const 3440 call $~lib/string/String#replaceAll - local.tee $83 + local.tee $81 i32.const 3440 call $~lib/string/String.__eq i32.eqz @@ -12367,7 +12654,7 @@ i32.const 2224 i32.const 3440 call $~lib/string/String#replaceAll - local.tee $84 + local.tee $82 i32.const 1808 call $~lib/string/String.__eq i32.eqz @@ -12383,7 +12670,7 @@ i32.const 1280 i32.const 3472 call $~lib/string/String#replaceAll - local.tee $85 + local.tee $83 i32.const 13280 call $~lib/string/String.__eq i32.eqz @@ -12399,7 +12686,7 @@ i32.const 1280 i32.const 1280 call $~lib/string/String#replaceAll - local.tee $86 + local.tee $84 i32.const 1808 call $~lib/string/String.__eq i32.eqz @@ -12419,7 +12706,7 @@ i32.const 0 i32.const 2147483647 call $~lib/string/String#slice - local.tee $87 + local.tee $85 i32.const 13312 call $~lib/string/String.__eq i32.eqz @@ -12435,7 +12722,7 @@ i32.const -1 i32.const 2147483647 call $~lib/string/String#slice - local.tee $88 + local.tee $86 i32.const 13360 call $~lib/string/String.__eq i32.eqz @@ -12451,7 +12738,7 @@ i32.const -5 i32.const 2147483647 call $~lib/string/String#slice - local.tee $89 + local.tee $87 i32.const 13392 call $~lib/string/String.__eq i32.eqz @@ -12467,7 +12754,7 @@ i32.const 2 i32.const 7 call $~lib/string/String#slice - local.tee $90 + local.tee $88 i32.const 13424 call $~lib/string/String.__eq i32.eqz @@ -12483,7 +12770,7 @@ i32.const -11 i32.const -6 call $~lib/string/String#slice - local.tee $91 + local.tee $89 i32.const 13456 call $~lib/string/String.__eq i32.eqz @@ -12499,7 +12786,7 @@ i32.const 4 i32.const 3 call $~lib/string/String#slice - local.tee $92 + local.tee $90 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -12515,7 +12802,7 @@ i32.const 0 i32.const -1 call $~lib/string/String#slice - local.tee $93 + local.tee $91 i32.const 13488 call $~lib/string/String.__eq i32.eqz @@ -12531,7 +12818,7 @@ i32.const 0 i32.const 2147483647 call $~lib/string/String#substr - local.tee $94 + local.tee $92 i32.const 13312 call $~lib/string/String.__eq i32.eqz @@ -12547,7 +12834,7 @@ i32.const -1 i32.const 2147483647 call $~lib/string/String#substr - local.tee $95 + local.tee $93 i32.const 13360 call $~lib/string/String.__eq i32.eqz @@ -12563,7 +12850,7 @@ i32.const -5 i32.const 2147483647 call $~lib/string/String#substr - local.tee $96 + local.tee $94 i32.const 13392 call $~lib/string/String.__eq i32.eqz @@ -12579,7 +12866,7 @@ i32.const 2 i32.const 7 call $~lib/string/String#substr - local.tee $97 + local.tee $95 i32.const 13536 call $~lib/string/String.__eq i32.eqz @@ -12595,7 +12882,7 @@ i32.const -11 i32.const -6 call $~lib/string/String#substr - local.tee $98 + local.tee $96 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -12611,7 +12898,7 @@ i32.const 4 i32.const 3 call $~lib/string/String#substr - local.tee $99 + local.tee $97 i32.const 13568 call $~lib/string/String.__eq i32.eqz @@ -12627,7 +12914,7 @@ i32.const 0 i32.const -1 call $~lib/string/String#substr - local.tee $100 + local.tee $98 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -12643,7 +12930,7 @@ i32.const 0 i32.const 100 call $~lib/string/String#substr - local.tee $101 + local.tee $99 i32.const 13312 call $~lib/string/String.__eq i32.eqz @@ -12659,7 +12946,7 @@ i32.const 4 i32.const 4 call $~lib/string/String#substr - local.tee $102 + local.tee $100 i32.const 13600 call $~lib/string/String.__eq i32.eqz @@ -12675,7 +12962,7 @@ i32.const 4 i32.const -3 call $~lib/string/String#substr - local.tee $103 + local.tee $101 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -12691,7 +12978,7 @@ i32.const 0 i32.const 2147483647 call $~lib/string/String#substring - local.tee $104 + local.tee $102 i32.const 13312 call $~lib/string/String.__eq i32.eqz @@ -12707,7 +12994,7 @@ i32.const -1 i32.const 2147483647 call $~lib/string/String#substring - local.tee $105 + local.tee $103 i32.const 13312 call $~lib/string/String.__eq i32.eqz @@ -12723,7 +13010,7 @@ i32.const -5 i32.const 2147483647 call $~lib/string/String#substring - local.tee $106 + local.tee $104 i32.const 13312 call $~lib/string/String.__eq i32.eqz @@ -12739,7 +13026,7 @@ i32.const 2 i32.const 7 call $~lib/string/String#substring - local.tee $107 + local.tee $105 i32.const 13424 call $~lib/string/String.__eq i32.eqz @@ -12755,7 +13042,7 @@ i32.const -11 i32.const -6 call $~lib/string/String#substring - local.tee $108 + local.tee $106 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -12771,7 +13058,7 @@ i32.const 4 i32.const 3 call $~lib/string/String#substring - local.tee $109 + local.tee $107 i32.const 13632 call $~lib/string/String.__eq i32.eqz @@ -12787,7 +13074,7 @@ i32.const 0 i32.const -1 call $~lib/string/String#substring - local.tee $110 + local.tee $108 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -12803,7 +13090,7 @@ i32.const 0 i32.const 100 call $~lib/string/String#substring - local.tee $111 + local.tee $109 i32.const 13312 call $~lib/string/String.__eq i32.eqz @@ -12819,7 +13106,7 @@ i32.const 4 i32.const 4 call $~lib/string/String#substring - local.tee $112 + local.tee $110 i32.const 1280 call $~lib/string/String.__eq i32.eqz @@ -12835,7 +13122,7 @@ i32.const 4 i32.const -3 call $~lib/string/String#substring - local.tee $113 + local.tee $111 i32.const 2256 call $~lib/string/String.__eq i32.eqz @@ -12851,25 +13138,25 @@ i32.const 0 i32.const 2147483647 call $~lib/string/String#split - local.tee $4 + local.tee $1 i32.load offset=12 i32.const 1 i32.eq if - local.get $4 + local.get $1 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 1280 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 i32.eqz if i32.const 0 @@ -12883,10 +13170,10 @@ i32.const 1280 i32.const 2147483647 call $~lib/string/String#split - local.set $1 - local.get $4 - call $~lib/rt/pure/__release + local.set $0 local.get $1 + call $~lib/rt/pure/__release + local.get $0 i32.load offset=12 if i32.const 0 @@ -12900,9 +13187,10 @@ i32.const 2064 i32.const 2147483647 call $~lib/string/String#split - local.get $1 + local.set $1 + local.get $0 call $~lib/rt/pure/__release - local.tee $1 + local.get $1 i32.load offset=12 i32.const 1 i32.eq @@ -12910,17 +13198,17 @@ local.get $1 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 1280 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 i32.eqz if i32.const 0 @@ -12944,17 +13232,17 @@ local.get $1 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 13888 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 i32.eqz if i32.const 0 @@ -12978,47 +13266,47 @@ local.get $1 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 1328 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if local.get $1 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 11920 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if local.get $1 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 12768 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 i32.eqz if i32.const 0 @@ -13042,47 +13330,47 @@ local.get $1 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 1328 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if local.get $1 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 11920 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if local.get $1 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 12768 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 i32.eqz if i32.const 0 @@ -13106,62 +13394,62 @@ local.get $1 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 1328 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if local.get $1 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 11920 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if local.get $1 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 1280 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if local.get $1 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 12768 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 i32.eqz if i32.const 0 @@ -13185,62 +13473,62 @@ local.get $1 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 1280 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if local.get $1 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 1328 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if local.get $1 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 11920 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if local.get $1 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 12768 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 i32.eqz if i32.const 0 @@ -13264,62 +13552,62 @@ local.get $1 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 1328 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if local.get $1 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 11920 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if local.get $1 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 12768 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if local.get $1 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 1280 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 i32.eqz if i32.const 0 @@ -13333,58 +13621,58 @@ i32.const 1280 i32.const 2147483647 call $~lib/string/String#split - local.set $0 + local.set $2 local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 i32.load offset=12 i32.const 3 i32.eq if - local.get $0 + local.get $2 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.tee $1 i32.const 1328 call $~lib/string/String.__eq - local.set $2 + local.set $0 local.get $1 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if - local.get $0 + local.get $2 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get local.tee $1 i32.const 11920 call $~lib/string/String.__eq - local.set $2 + local.set $0 local.get $1 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if - local.get $0 + local.get $2 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get local.tee $1 i32.const 12768 call $~lib/string/String.__eq - local.set $2 + local.set $0 local.get $1 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 i32.eqz if i32.const 0 @@ -13398,10 +13686,10 @@ i32.const 1280 i32.const 0 call $~lib/string/String#split - local.set $1 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -13415,9 +13703,10 @@ i32.const 1280 i32.const 1 call $~lib/string/String#split - local.get $1 + local.set $1 + local.get $0 call $~lib/rt/pure/__release - local.tee $1 + local.get $1 i32.load offset=12 i32.const 1 i32.eq @@ -13425,17 +13714,17 @@ local.get $1 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 1328 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 i32.eqz if i32.const 0 @@ -13459,17 +13748,17 @@ local.get $1 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 1328 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 i32.eqz if i32.const 0 @@ -13493,47 +13782,47 @@ local.get $1 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 1328 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if local.get $1 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 11920 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if local.get $1 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 12768 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 i32.eqz if i32.const 0 @@ -13557,47 +13846,47 @@ local.get $1 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 1328 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if local.get $1 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 11920 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if local.get $1 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 + local.tee $2 i32.const 12768 call $~lib/string/String.__eq - local.set $2 - local.get $0 + local.set $0 + local.get $2 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 i32.eqz if i32.const 0 @@ -13611,58 +13900,58 @@ i32.const 2064 i32.const -1 call $~lib/string/String#split - local.set $0 + local.set $2 local.get $1 call $~lib/rt/pure/__release - local.get $0 + local.get $2 i32.load offset=12 i32.const 3 i32.eq if - local.get $0 + local.get $2 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.tee $1 i32.const 1328 call $~lib/string/String.__eq - local.set $2 + local.set $0 local.get $1 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if - local.get $0 + local.get $2 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get local.tee $1 i32.const 11920 call $~lib/string/String.__eq - local.set $2 + local.set $0 local.get $1 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if - local.get $0 + local.get $2 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get local.tee $1 i32.const 12768 call $~lib/string/String.__eq - local.set $2 + local.set $0 local.get $1 call $~lib/rt/pure/__release else i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 i32.eqz if i32.const 0 @@ -13672,12 +13961,12 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 call $~lib/rt/pure/__release i32.const 0 i32.const 10 call $~lib/util/number/itoa32 - local.tee $114 + local.tee $1 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -13692,7 +13981,7 @@ i32.const 1 i32.const 10 call $~lib/util/number/itoa32 - local.tee $115 + local.tee $0 i32.const 2496 call $~lib/string/String.__eq i32.eqz @@ -13707,7 +13996,7 @@ i32.const 8 i32.const 10 call $~lib/util/number/itoa32 - local.tee $116 + local.tee $2 i32.const 14368 call $~lib/string/String.__eq i32.eqz @@ -13722,7 +14011,7 @@ i32.const 12 i32.const 10 call $~lib/util/number/itoa32 - local.tee $117 + local.tee $112 i32.const 14400 call $~lib/string/String.__eq i32.eqz @@ -13737,7 +14026,7 @@ i32.const 123 i32.const 10 call $~lib/util/number/itoa32 - local.tee $118 + local.tee $113 i32.const 1872 call $~lib/string/String.__eq i32.eqz @@ -13752,7 +14041,7 @@ i32.const -1000 i32.const 10 call $~lib/util/number/itoa32 - local.tee $119 + local.tee $114 i32.const 14432 call $~lib/string/String.__eq i32.eqz @@ -13767,7 +14056,7 @@ i32.const 1234 i32.const 10 call $~lib/util/number/itoa32 - local.tee $120 + local.tee $115 i32.const 14464 call $~lib/string/String.__eq i32.eqz @@ -13782,7 +14071,7 @@ i32.const 12345 i32.const 10 call $~lib/util/number/itoa32 - local.tee $121 + local.tee $116 i32.const 14496 call $~lib/string/String.__eq i32.eqz @@ -13797,7 +14086,7 @@ i32.const 123456 i32.const 10 call $~lib/util/number/itoa32 - local.tee $122 + local.tee $117 i32.const 14528 call $~lib/string/String.__eq i32.eqz @@ -13812,7 +14101,7 @@ i32.const 1111111 i32.const 10 call $~lib/util/number/itoa32 - local.tee $123 + local.tee $118 i32.const 14560 call $~lib/string/String.__eq i32.eqz @@ -13827,7 +14116,7 @@ i32.const 1234567 i32.const 10 call $~lib/util/number/itoa32 - local.tee $124 + local.tee $119 i32.const 14592 call $~lib/string/String.__eq i32.eqz @@ -13842,7 +14131,7 @@ i32.const 12345678 i32.const 10 call $~lib/util/number/itoa32 - local.tee $125 + local.tee $120 i32.const 14624 call $~lib/string/String.__eq i32.eqz @@ -13857,7 +14146,7 @@ i32.const 123456789 i32.const 10 call $~lib/util/number/itoa32 - local.tee $126 + local.tee $121 i32.const 14656 call $~lib/string/String.__eq i32.eqz @@ -13872,7 +14161,7 @@ i32.const 2147483646 i32.const 10 call $~lib/util/number/itoa32 - local.tee $127 + local.tee $122 i32.const 14704 call $~lib/string/String.__eq i32.eqz @@ -13887,7 +14176,7 @@ i32.const 2147483647 i32.const 10 call $~lib/util/number/itoa32 - local.tee $128 + local.tee $123 i32.const 14752 call $~lib/string/String.__eq i32.eqz @@ -13902,7 +14191,7 @@ i32.const -2147483648 i32.const 10 call $~lib/util/number/itoa32 - local.tee $129 + local.tee $124 i32.const 14800 call $~lib/string/String.__eq i32.eqz @@ -13917,7 +14206,7 @@ i32.const -1 i32.const 10 call $~lib/util/number/itoa32 - local.tee $130 + local.tee $125 i32.const 14848 call $~lib/string/String.__eq i32.eqz @@ -13932,7 +14221,7 @@ i32.const 0 i32.const 10 call $~lib/util/number/utoa32 - local.tee $131 + local.tee $126 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -13947,7 +14236,7 @@ i32.const 1000 i32.const 10 call $~lib/util/number/utoa32 - local.tee $132 + local.tee $127 i32.const 14880 call $~lib/string/String.__eq i32.eqz @@ -13962,7 +14251,7 @@ i32.const 2147483647 i32.const 10 call $~lib/util/number/utoa32 - local.tee $133 + local.tee $128 i32.const 14752 call $~lib/string/String.__eq i32.eqz @@ -13977,7 +14266,7 @@ i32.const -2147483648 i32.const 10 call $~lib/util/number/utoa32 - local.tee $134 + local.tee $129 i32.const 14912 call $~lib/string/String.__eq i32.eqz @@ -13992,7 +14281,7 @@ i32.const -1 i32.const 10 call $~lib/util/number/utoa32 - local.tee $135 + local.tee $130 i32.const 14960 call $~lib/string/String.__eq i32.eqz @@ -14007,7 +14296,7 @@ i32.const 0 i32.const 16 call $~lib/util/number/utoa32 - local.tee $136 + local.tee $131 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -14022,7 +14311,7 @@ i32.const 1 i32.const 16 call $~lib/util/number/utoa32 - local.tee $137 + local.tee $132 i32.const 2496 call $~lib/string/String.__eq i32.eqz @@ -14037,7 +14326,7 @@ i32.const 8 i32.const 16 call $~lib/util/number/utoa32 - local.tee $138 + local.tee $133 i32.const 14368 call $~lib/string/String.__eq i32.eqz @@ -14052,7 +14341,7 @@ i32.const 12 i32.const 16 call $~lib/util/number/utoa32 - local.tee $139 + local.tee $134 i32.const 12768 call $~lib/string/String.__eq i32.eqz @@ -14067,7 +14356,7 @@ i32.const 123 i32.const 16 call $~lib/util/number/utoa32 - local.tee $140 + local.tee $135 i32.const 15008 call $~lib/string/String.__eq i32.eqz @@ -14082,7 +14371,7 @@ i32.const 1234 i32.const 16 call $~lib/util/number/utoa32 - local.tee $141 + local.tee $136 i32.const 15040 call $~lib/string/String.__eq i32.eqz @@ -14097,7 +14386,7 @@ i32.const 12345 i32.const 16 call $~lib/util/number/utoa32 - local.tee $142 + local.tee $137 i32.const 15072 call $~lib/string/String.__eq i32.eqz @@ -14112,7 +14401,7 @@ i32.const 123456 i32.const 16 call $~lib/util/number/utoa32 - local.tee $143 + local.tee $138 i32.const 15104 call $~lib/string/String.__eq i32.eqz @@ -14127,7 +14416,7 @@ i32.const 1111111 i32.const 16 call $~lib/util/number/utoa32 - local.tee $144 + local.tee $139 i32.const 15136 call $~lib/string/String.__eq i32.eqz @@ -14142,7 +14431,7 @@ i32.const 1234567 i32.const 16 call $~lib/util/number/utoa32 - local.tee $145 + local.tee $140 i32.const 15168 call $~lib/string/String.__eq i32.eqz @@ -14157,7 +14446,7 @@ i32.const 12345678 i32.const 16 call $~lib/util/number/utoa32 - local.tee $146 + local.tee $141 i32.const 15200 call $~lib/string/String.__eq i32.eqz @@ -14172,7 +14461,7 @@ i32.const 123456789 i32.const 16 call $~lib/util/number/utoa32 - local.tee $147 + local.tee $142 i32.const 15232 call $~lib/string/String.__eq i32.eqz @@ -14187,7 +14476,7 @@ i32.const 2147483646 i32.const 16 call $~lib/util/number/utoa32 - local.tee $148 + local.tee $143 i32.const 15264 call $~lib/string/String.__eq i32.eqz @@ -14202,7 +14491,7 @@ i32.const 2147483647 i32.const 16 call $~lib/util/number/utoa32 - local.tee $149 + local.tee $144 i32.const 15296 call $~lib/string/String.__eq i32.eqz @@ -14217,7 +14506,7 @@ i32.const -2147483648 i32.const 16 call $~lib/util/number/utoa32 - local.tee $150 + local.tee $145 i32.const 15328 call $~lib/string/String.__eq i32.eqz @@ -14232,7 +14521,7 @@ i32.const -1 i32.const 16 call $~lib/util/number/utoa32 - local.tee $151 + local.tee $146 i32.const 15360 call $~lib/string/String.__eq i32.eqz @@ -14247,7 +14536,7 @@ i32.const 0 i32.const 16 call $~lib/util/number/itoa32 - local.tee $152 + local.tee $147 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -14262,7 +14551,7 @@ i32.const -4096 i32.const 16 call $~lib/util/number/itoa32 - local.tee $153 + local.tee $148 i32.const 14432 call $~lib/string/String.__eq i32.eqz @@ -14277,7 +14566,7 @@ i32.const 2147483647 i32.const 16 call $~lib/util/number/itoa32 - local.tee $154 + local.tee $149 i32.const 15296 call $~lib/string/String.__eq i32.eqz @@ -14292,7 +14581,7 @@ i32.const -2147483647 i32.const 16 call $~lib/util/number/itoa32 - local.tee $155 + local.tee $150 i32.const 15392 call $~lib/string/String.__eq i32.eqz @@ -14307,7 +14596,7 @@ i32.const -268435455 i32.const 16 call $~lib/util/number/itoa32 - local.tee $156 + local.tee $151 i32.const 15440 call $~lib/string/String.__eq i32.eqz @@ -14322,7 +14611,7 @@ i32.const -2147483648 i32.const 16 call $~lib/util/number/itoa32 - local.tee $157 + local.tee $152 i32.const 15472 call $~lib/string/String.__eq i32.eqz @@ -14337,7 +14626,7 @@ i32.const -2147483648 i32.const 16 call $~lib/util/number/itoa32 - local.tee $158 + local.tee $153 i32.const 15472 call $~lib/string/String.__eq i32.eqz @@ -14352,7 +14641,7 @@ i32.const 0 i32.const 2 call $~lib/util/number/utoa32 - local.tee $159 + local.tee $154 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -14367,7 +14656,7 @@ i32.const 1 i32.const 2 call $~lib/util/number/utoa32 - local.tee $160 + local.tee $155 i32.const 2496 call $~lib/string/String.__eq i32.eqz @@ -14382,7 +14671,7 @@ i32.const 3 i32.const 2 call $~lib/util/number/utoa32 - local.tee $161 + local.tee $156 i32.const 15520 call $~lib/string/String.__eq i32.eqz @@ -14397,7 +14686,7 @@ i32.const 7 i32.const 2 call $~lib/util/number/utoa32 - local.tee $162 + local.tee $157 i32.const 15552 call $~lib/string/String.__eq i32.eqz @@ -14412,7 +14701,7 @@ i32.const 14 i32.const 2 call $~lib/util/number/utoa32 - local.tee $163 + local.tee $158 i32.const 15584 call $~lib/string/String.__eq i32.eqz @@ -14427,7 +14716,7 @@ i32.const 29 i32.const 2 call $~lib/util/number/utoa32 - local.tee $164 + local.tee $159 i32.const 15616 call $~lib/string/String.__eq i32.eqz @@ -14442,7 +14731,7 @@ i32.const 59 i32.const 2 call $~lib/util/number/utoa32 - local.tee $165 + local.tee $160 i32.const 15648 call $~lib/string/String.__eq i32.eqz @@ -14457,7 +14746,7 @@ i32.const 4095 i32.const 2 call $~lib/util/number/utoa32 - local.tee $166 + local.tee $161 i32.const 15680 call $~lib/string/String.__eq i32.eqz @@ -14472,7 +14761,7 @@ i32.const 33554431 i32.const 2 call $~lib/util/number/utoa32 - local.tee $167 + local.tee $162 i32.const 15728 call $~lib/string/String.__eq i32.eqz @@ -14487,7 +14776,7 @@ i32.const -12 i32.const 2 call $~lib/util/number/utoa32 - local.tee $168 + local.tee $163 i32.const 15808 call $~lib/string/String.__eq i32.eqz @@ -14502,7 +14791,7 @@ i32.const -4 i32.const 2 call $~lib/util/number/utoa32 - local.tee $169 + local.tee $164 i32.const 15888 call $~lib/string/String.__eq i32.eqz @@ -14517,7 +14806,7 @@ i32.const -2 i32.const 2 call $~lib/util/number/utoa32 - local.tee $170 + local.tee $165 i32.const 15968 call $~lib/string/String.__eq i32.eqz @@ -14532,7 +14821,7 @@ i32.const -1 i32.const 2 call $~lib/util/number/utoa32 - local.tee $171 + local.tee $166 i32.const 16048 call $~lib/string/String.__eq i32.eqz @@ -14547,7 +14836,7 @@ i32.const -2047 i32.const 2 call $~lib/util/number/itoa32 - local.tee $172 + local.tee $167 i32.const 16128 call $~lib/string/String.__eq i32.eqz @@ -14562,7 +14851,7 @@ i32.const -1 i32.const 3 call $~lib/util/number/utoa32 - local.tee $173 + local.tee $168 i32.const 16176 call $~lib/string/String.__eq i32.eqz @@ -14577,7 +14866,7 @@ i32.const -1 i32.const 4 call $~lib/util/number/utoa32 - local.tee $174 + local.tee $169 i32.const 16240 call $~lib/string/String.__eq i32.eqz @@ -14592,7 +14881,7 @@ i32.const -1 i32.const 5 call $~lib/util/number/utoa32 - local.tee $175 + local.tee $170 i32.const 16288 call $~lib/string/String.__eq i32.eqz @@ -14607,7 +14896,7 @@ i32.const -1 i32.const 8 call $~lib/util/number/utoa32 - local.tee $176 + local.tee $171 i32.const 16336 call $~lib/string/String.__eq i32.eqz @@ -14622,7 +14911,7 @@ i32.const -1 i32.const 11 call $~lib/util/number/utoa32 - local.tee $177 + local.tee $172 i32.const 16384 call $~lib/string/String.__eq i32.eqz @@ -14637,7 +14926,7 @@ i32.const -1 i32.const 15 call $~lib/util/number/utoa32 - local.tee $178 + local.tee $173 i32.const 16432 call $~lib/string/String.__eq i32.eqz @@ -14652,7 +14941,7 @@ i32.const -1 i32.const 17 call $~lib/util/number/utoa32 - local.tee $179 + local.tee $174 i32.const 16480 call $~lib/string/String.__eq i32.eqz @@ -14667,7 +14956,7 @@ i32.const -1 i32.const 21 call $~lib/util/number/utoa32 - local.tee $180 + local.tee $175 i32.const 16512 call $~lib/string/String.__eq i32.eqz @@ -14682,7 +14971,7 @@ i32.const -1 i32.const 27 call $~lib/util/number/utoa32 - local.tee $181 + local.tee $176 i32.const 16544 call $~lib/string/String.__eq i32.eqz @@ -14697,7 +14986,7 @@ i32.const -1 i32.const 32 call $~lib/util/number/utoa32 - local.tee $182 + local.tee $177 i32.const 16576 call $~lib/string/String.__eq i32.eqz @@ -14712,7 +15001,7 @@ i32.const -1 i32.const 36 call $~lib/util/number/utoa32 - local.tee $183 + local.tee $178 i32.const 16608 call $~lib/string/String.__eq i32.eqz @@ -14727,7 +15016,7 @@ i64.const 0 i32.const 10 call $~lib/util/number/utoa64 - local.tee $184 + local.tee $179 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -14742,7 +15031,7 @@ i64.const 12 i32.const 10 call $~lib/util/number/utoa64 - local.tee $185 + local.tee $180 i32.const 14400 call $~lib/string/String.__eq i32.eqz @@ -14757,7 +15046,7 @@ i64.const 123 i32.const 10 call $~lib/util/number/utoa64 - local.tee $186 + local.tee $181 i32.const 1872 call $~lib/string/String.__eq i32.eqz @@ -14772,7 +15061,7 @@ i64.const 1234 i32.const 10 call $~lib/util/number/utoa64 - local.tee $187 + local.tee $182 i32.const 14464 call $~lib/string/String.__eq i32.eqz @@ -14787,7 +15076,7 @@ i64.const 12345 i32.const 10 call $~lib/util/number/utoa64 - local.tee $188 + local.tee $183 i32.const 14496 call $~lib/string/String.__eq i32.eqz @@ -14802,7 +15091,7 @@ i64.const 123456 i32.const 10 call $~lib/util/number/utoa64 - local.tee $189 + local.tee $184 i32.const 14528 call $~lib/string/String.__eq i32.eqz @@ -14817,7 +15106,7 @@ i64.const 1234567 i32.const 10 call $~lib/util/number/utoa64 - local.tee $190 + local.tee $185 i32.const 14592 call $~lib/string/String.__eq i32.eqz @@ -14832,7 +15121,7 @@ i64.const 99999999 i32.const 10 call $~lib/util/number/utoa64 - local.tee $191 + local.tee $186 i32.const 16640 call $~lib/string/String.__eq i32.eqz @@ -14847,7 +15136,7 @@ i64.const 100000000 i32.const 10 call $~lib/util/number/utoa64 - local.tee $192 + local.tee $187 i32.const 16672 call $~lib/string/String.__eq i32.eqz @@ -14862,7 +15151,7 @@ i64.const 4294967295 i32.const 10 call $~lib/util/number/utoa64 - local.tee $193 + local.tee $188 i32.const 14960 call $~lib/string/String.__eq i32.eqz @@ -14877,7 +15166,7 @@ i64.const 4294967297 i32.const 10 call $~lib/util/number/utoa64 - local.tee $194 + local.tee $189 i32.const 16720 call $~lib/string/String.__eq i32.eqz @@ -14892,7 +15181,7 @@ i64.const 68719476735 i32.const 10 call $~lib/util/number/utoa64 - local.tee $195 + local.tee $190 i32.const 16768 call $~lib/string/String.__eq i32.eqz @@ -14907,7 +15196,7 @@ i64.const 868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.tee $196 + local.tee $191 i32.const 16816 call $~lib/string/String.__eq i32.eqz @@ -14922,7 +15211,7 @@ i64.const 8687194767350 i32.const 10 call $~lib/util/number/utoa64 - local.tee $197 + local.tee $192 i32.const 16864 call $~lib/string/String.__eq i32.eqz @@ -14937,7 +15226,7 @@ i64.const 86871947673501 i32.const 10 call $~lib/util/number/utoa64 - local.tee $198 + local.tee $193 i32.const 16912 call $~lib/string/String.__eq i32.eqz @@ -14952,7 +15241,7 @@ i64.const 999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.tee $199 + local.tee $194 i32.const 16960 call $~lib/string/String.__eq i32.eqz @@ -14967,7 +15256,7 @@ i64.const 9999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.tee $200 + local.tee $195 i32.const 17008 call $~lib/string/String.__eq i32.eqz @@ -14982,7 +15271,7 @@ i64.const 19999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.tee $201 + local.tee $196 i32.const 17056 call $~lib/string/String.__eq i32.eqz @@ -14997,7 +15286,7 @@ i64.const 129999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.tee $202 + local.tee $197 i32.const 17120 call $~lib/string/String.__eq i32.eqz @@ -15012,7 +15301,7 @@ i64.const 1239999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.tee $203 + local.tee $198 i32.const 17184 call $~lib/string/String.__eq i32.eqz @@ -15027,7 +15316,7 @@ i64.const -1 i32.const 10 call $~lib/util/number/utoa64 - local.tee $204 + local.tee $199 i32.const 17248 call $~lib/string/String.__eq i32.eqz @@ -15042,7 +15331,7 @@ i64.const 0 i32.const 10 call $~lib/util/number/itoa64 - local.tee $205 + local.tee $200 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -15057,7 +15346,7 @@ i64.const -1234 i32.const 10 call $~lib/util/number/itoa64 - local.tee $206 + local.tee $201 i32.const 17312 call $~lib/string/String.__eq i32.eqz @@ -15072,7 +15361,7 @@ i64.const 4294967295 i32.const 10 call $~lib/util/number/itoa64 - local.tee $207 + local.tee $202 i32.const 14960 call $~lib/string/String.__eq i32.eqz @@ -15087,7 +15376,7 @@ i64.const 4294967297 i32.const 10 call $~lib/util/number/itoa64 - local.tee $208 + local.tee $203 i32.const 16720 call $~lib/string/String.__eq i32.eqz @@ -15102,7 +15391,7 @@ i64.const -4294967295 i32.const 10 call $~lib/util/number/itoa64 - local.tee $209 + local.tee $204 i32.const 17344 call $~lib/string/String.__eq i32.eqz @@ -15117,7 +15406,7 @@ i64.const 68719476735 i32.const 10 call $~lib/util/number/itoa64 - local.tee $210 + local.tee $205 i32.const 16768 call $~lib/string/String.__eq i32.eqz @@ -15132,7 +15421,7 @@ i64.const -68719476735 i32.const 10 call $~lib/util/number/itoa64 - local.tee $211 + local.tee $206 i32.const 17392 call $~lib/string/String.__eq i32.eqz @@ -15147,7 +15436,7 @@ i64.const -868719476735 i32.const 10 call $~lib/util/number/itoa64 - local.tee $212 + local.tee $207 i32.const 17440 call $~lib/string/String.__eq i32.eqz @@ -15162,7 +15451,7 @@ i64.const -999868719476735 i32.const 10 call $~lib/util/number/itoa64 - local.tee $213 + local.tee $208 i32.const 17488 call $~lib/string/String.__eq i32.eqz @@ -15177,7 +15466,7 @@ i64.const -19999868719476735 i32.const 10 call $~lib/util/number/itoa64 - local.tee $214 + local.tee $209 i32.const 17536 call $~lib/string/String.__eq i32.eqz @@ -15192,7 +15481,7 @@ i64.const 9223372036854775807 i32.const 10 call $~lib/util/number/itoa64 - local.tee $215 + local.tee $210 i32.const 17600 call $~lib/string/String.__eq i32.eqz @@ -15207,7 +15496,7 @@ i64.const -9223372036854775808 i32.const 10 call $~lib/util/number/itoa64 - local.tee $216 + local.tee $211 i32.const 17664 call $~lib/string/String.__eq i32.eqz @@ -15222,7 +15511,7 @@ i64.const 0 i32.const 16 call $~lib/util/number/utoa64 - local.tee $217 + local.tee $212 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -15237,7 +15526,7 @@ i64.const 1 i32.const 16 call $~lib/util/number/utoa64 - local.tee $218 + local.tee $213 i32.const 2496 call $~lib/string/String.__eq i32.eqz @@ -15252,7 +15541,7 @@ i64.const 12 i32.const 16 call $~lib/util/number/utoa64 - local.tee $219 + local.tee $214 i32.const 12768 call $~lib/string/String.__eq i32.eqz @@ -15267,7 +15556,7 @@ i64.const 1234 i32.const 16 call $~lib/util/number/utoa64 - local.tee $220 + local.tee $215 i32.const 15040 call $~lib/string/String.__eq i32.eqz @@ -15282,7 +15571,7 @@ i64.const 1111111 i32.const 16 call $~lib/util/number/utoa64 - local.tee $221 + local.tee $216 i32.const 15136 call $~lib/string/String.__eq i32.eqz @@ -15297,7 +15586,7 @@ i64.const 8589934591 i32.const 16 call $~lib/util/number/utoa64 - local.tee $222 + local.tee $217 i32.const 17728 call $~lib/string/String.__eq i32.eqz @@ -15312,7 +15601,7 @@ i64.const 5942249508321 i32.const 16 call $~lib/util/number/utoa64 - local.tee $223 + local.tee $218 i32.const 17776 call $~lib/string/String.__eq i32.eqz @@ -15327,7 +15616,7 @@ i64.const 76310993685985 i32.const 16 call $~lib/util/number/utoa64 - local.tee $224 + local.tee $219 i32.const 17824 call $~lib/string/String.__eq i32.eqz @@ -15342,7 +15631,7 @@ i64.const 920735923817967 i32.const 16 call $~lib/util/number/utoa64 - local.tee $225 + local.tee $220 i32.const 17872 call $~lib/string/String.__eq i32.eqz @@ -15357,7 +15646,7 @@ i64.const 9927935178558959 i32.const 16 call $~lib/util/number/utoa64 - local.tee $226 + local.tee $221 i32.const 17920 call $~lib/string/String.__eq i32.eqz @@ -15372,7 +15661,7 @@ i64.const 81985529216486895 i32.const 16 call $~lib/util/number/utoa64 - local.tee $227 + local.tee $222 i32.const 17968 call $~lib/string/String.__eq i32.eqz @@ -15387,7 +15676,7 @@ i64.const 1311768467463790320 i32.const 16 call $~lib/util/number/utoa64 - local.tee $228 + local.tee $223 i32.const 18016 call $~lib/string/String.__eq i32.eqz @@ -15402,7 +15691,7 @@ i64.const 9223372036854775807 i32.const 16 call $~lib/util/number/utoa64 - local.tee $229 + local.tee $224 i32.const 18064 call $~lib/string/String.__eq i32.eqz @@ -15417,7 +15706,7 @@ i64.const -1 i32.const 16 call $~lib/util/number/utoa64 - local.tee $230 + local.tee $225 i32.const 18112 call $~lib/string/String.__eq i32.eqz @@ -15432,7 +15721,7 @@ i64.const -9223372036854775807 i32.const 16 call $~lib/util/number/itoa64 - local.tee $231 + local.tee $226 i32.const 18160 call $~lib/string/String.__eq i32.eqz @@ -15447,7 +15736,7 @@ i64.const -9223372036854775808 i32.const 16 call $~lib/util/number/itoa64 - local.tee $232 + local.tee $227 i32.const 18224 call $~lib/string/String.__eq i32.eqz @@ -15462,7 +15751,7 @@ i64.const -9223372036854775808 i32.const 16 call $~lib/util/number/itoa64 - local.tee $233 + local.tee $228 i32.const 18224 call $~lib/string/String.__eq i32.eqz @@ -15477,7 +15766,7 @@ i64.const 0 i32.const 2 call $~lib/util/number/utoa64 - local.tee $234 + local.tee $229 i32.const 2432 call $~lib/string/String.__eq i32.eqz @@ -15492,7 +15781,7 @@ i64.const 1 i32.const 2 call $~lib/util/number/utoa64 - local.tee $235 + local.tee $230 i32.const 2496 call $~lib/string/String.__eq i32.eqz @@ -15507,7 +15796,7 @@ i64.const 7 i32.const 2 call $~lib/util/number/utoa64 - local.tee $236 + local.tee $231 i32.const 15552 call $~lib/string/String.__eq i32.eqz @@ -15522,7 +15811,7 @@ i64.const 14 i32.const 2 call $~lib/util/number/utoa64 - local.tee $237 + local.tee $232 i32.const 15584 call $~lib/string/String.__eq i32.eqz @@ -15537,7 +15826,7 @@ i64.const 59 i32.const 2 call $~lib/util/number/utoa64 - local.tee $238 + local.tee $233 i32.const 15648 call $~lib/string/String.__eq i32.eqz @@ -15552,7 +15841,7 @@ i64.const 4095 i32.const 2 call $~lib/util/number/utoa64 - local.tee $239 + local.tee $234 i32.const 15680 call $~lib/string/String.__eq i32.eqz @@ -15567,7 +15856,7 @@ i64.const 4294967295 i32.const 2 call $~lib/util/number/utoa64 - local.tee $240 + local.tee $235 i32.const 16048 call $~lib/string/String.__eq i32.eqz @@ -15582,7 +15871,7 @@ i64.const 562949953421311 i32.const 2 call $~lib/util/number/utoa64 - local.tee $241 + local.tee $236 i32.const 18288 call $~lib/string/String.__eq i32.eqz @@ -15597,7 +15886,7 @@ i64.const -1 i32.const 2 call $~lib/util/number/utoa64 - local.tee $242 + local.tee $237 i32.const 18416 call $~lib/string/String.__eq i32.eqz @@ -15612,7 +15901,7 @@ i64.const -8589934591 i32.const 2 call $~lib/util/number/itoa64 - local.tee $243 + local.tee $238 i32.const 18560 call $~lib/string/String.__eq i32.eqz @@ -15627,7 +15916,7 @@ i64.const -1 i32.const 3 call $~lib/util/number/utoa64 - local.tee $244 + local.tee $239 i32.const 18656 call $~lib/string/String.__eq i32.eqz @@ -15642,7 +15931,7 @@ i64.const -1 i32.const 4 call $~lib/util/number/utoa64 - local.tee $245 + local.tee $240 i32.const 18768 call $~lib/string/String.__eq i32.eqz @@ -15657,7 +15946,7 @@ i64.const -1 i32.const 5 call $~lib/util/number/utoa64 - local.tee $246 + local.tee $241 i32.const 18848 call $~lib/string/String.__eq i32.eqz @@ -15672,7 +15961,7 @@ i64.const -1 i32.const 8 call $~lib/util/number/utoa64 - local.tee $247 + local.tee $242 i32.const 18928 call $~lib/string/String.__eq i32.eqz @@ -15687,7 +15976,7 @@ i64.const -1 i32.const 11 call $~lib/util/number/utoa64 - local.tee $248 + local.tee $243 i32.const 18992 call $~lib/string/String.__eq i32.eqz @@ -15702,7 +15991,7 @@ i64.const -1 i32.const 15 call $~lib/util/number/utoa64 - local.tee $249 + local.tee $244 i32.const 19056 call $~lib/string/String.__eq i32.eqz @@ -15717,7 +16006,7 @@ i64.const -1 i32.const 17 call $~lib/util/number/utoa64 - local.tee $250 + local.tee $245 i32.const 19120 call $~lib/string/String.__eq i32.eqz @@ -15732,7 +16021,7 @@ i64.const -1 i32.const 21 call $~lib/util/number/utoa64 - local.tee $251 + local.tee $246 i32.const 19168 call $~lib/string/String.__eq i32.eqz @@ -15747,7 +16036,7 @@ i64.const -1 i32.const 27 call $~lib/util/number/utoa64 - local.tee $252 + local.tee $247 i32.const 19216 call $~lib/string/String.__eq i32.eqz @@ -15762,7 +16051,7 @@ i64.const -1 i32.const 32 call $~lib/util/number/utoa64 - local.tee $253 + local.tee $248 i32.const 19264 call $~lib/string/String.__eq i32.eqz @@ -15777,7 +16066,7 @@ i64.const -1 i32.const 36 call $~lib/util/number/utoa64 - local.tee $254 + local.tee $249 i32.const 19312 call $~lib/string/String.__eq i32.eqz @@ -15791,7 +16080,7 @@ end f64.const 0 call $~lib/util/number/dtoa - local.tee $255 + local.tee $250 i32.const 19360 call $~lib/string/String.__eq i32.eqz @@ -15805,7 +16094,7 @@ end f64.const -0 call $~lib/util/number/dtoa - local.tee $256 + local.tee $251 i32.const 19360 call $~lib/string/String.__eq i32.eqz @@ -15819,7 +16108,7 @@ end f64.const nan:0x8000000000000 call $~lib/util/number/dtoa - local.tee $257 + local.tee $252 i32.const 6336 call $~lib/string/String.__eq i32.eqz @@ -15833,7 +16122,7 @@ end f64.const inf call $~lib/util/number/dtoa - local.tee $258 + local.tee $253 i32.const 19392 call $~lib/string/String.__eq i32.eqz @@ -15847,7 +16136,7 @@ end f64.const -inf call $~lib/util/number/dtoa - local.tee $259 + local.tee $254 i32.const 7552 call $~lib/string/String.__eq i32.eqz @@ -15861,7 +16150,7 @@ end f64.const 2.220446049250313e-16 call $~lib/util/number/dtoa - local.tee $260 + local.tee $255 i32.const 6848 call $~lib/string/String.__eq i32.eqz @@ -15875,7 +16164,7 @@ end f64.const -2.220446049250313e-16 call $~lib/util/number/dtoa - local.tee $261 + local.tee $256 i32.const 20336 call $~lib/string/String.__eq i32.eqz @@ -15889,7 +16178,7 @@ end f64.const 1797693134862315708145274e284 call $~lib/util/number/dtoa - local.tee $262 + local.tee $257 i32.const 6912 call $~lib/string/String.__eq i32.eqz @@ -15903,7 +16192,7 @@ end f64.const -1797693134862315708145274e284 call $~lib/util/number/dtoa - local.tee $263 + local.tee $258 i32.const 20400 call $~lib/string/String.__eq i32.eqz @@ -15917,7 +16206,7 @@ end f64.const 4185580496821356722454785e274 call $~lib/util/number/dtoa - local.tee $264 + local.tee $259 i32.const 20464 call $~lib/string/String.__eq i32.eqz @@ -15931,7 +16220,7 @@ end f64.const 2.2250738585072014e-308 call $~lib/util/number/dtoa - local.tee $265 + local.tee $260 i32.const 20528 call $~lib/string/String.__eq i32.eqz @@ -15945,7 +16234,7 @@ end f64.const 4.940656e-318 call $~lib/util/number/dtoa - local.tee $266 + local.tee $261 i32.const 20592 call $~lib/string/String.__eq i32.eqz @@ -15959,7 +16248,7 @@ end f64.const 9060801153433600 call $~lib/util/number/dtoa - local.tee $267 + local.tee $262 i32.const 20640 call $~lib/string/String.__eq i32.eqz @@ -15973,7 +16262,7 @@ end f64.const 4708356024711512064 call $~lib/util/number/dtoa - local.tee $268 + local.tee $263 i32.const 20704 call $~lib/string/String.__eq i32.eqz @@ -15987,7 +16276,7 @@ end f64.const 9409340012568248320 call $~lib/util/number/dtoa - local.tee $269 + local.tee $264 i32.const 20768 call $~lib/string/String.__eq i32.eqz @@ -16001,7 +16290,7 @@ end f64.const 5e-324 call $~lib/util/number/dtoa - local.tee $270 + local.tee $265 i32.const 6976 call $~lib/string/String.__eq i32.eqz @@ -16015,7 +16304,7 @@ end f64.const 1 call $~lib/util/number/dtoa - local.tee $271 + local.tee $266 i32.const 20832 call $~lib/string/String.__eq i32.eqz @@ -16029,7 +16318,7 @@ end f64.const 0.1 call $~lib/util/number/dtoa - local.tee $272 + local.tee $267 i32.const 4112 call $~lib/string/String.__eq i32.eqz @@ -16043,7 +16332,7 @@ end f64.const -1 call $~lib/util/number/dtoa - local.tee $273 + local.tee $268 i32.const 20864 call $~lib/string/String.__eq i32.eqz @@ -16057,7 +16346,7 @@ end f64.const -0.1 call $~lib/util/number/dtoa - local.tee $274 + local.tee $269 i32.const 20896 call $~lib/string/String.__eq i32.eqz @@ -16071,7 +16360,7 @@ end f64.const 1e6 call $~lib/util/number/dtoa - local.tee $275 + local.tee $270 i32.const 20928 call $~lib/string/String.__eq i32.eqz @@ -16085,7 +16374,7 @@ end f64.const 1e-06 call $~lib/util/number/dtoa - local.tee $276 + local.tee $271 i32.const 20976 call $~lib/string/String.__eq i32.eqz @@ -16099,7 +16388,7 @@ end f64.const -1e6 call $~lib/util/number/dtoa - local.tee $277 + local.tee $272 i32.const 21008 call $~lib/string/String.__eq i32.eqz @@ -16113,7 +16402,7 @@ end f64.const -1e-06 call $~lib/util/number/dtoa - local.tee $278 + local.tee $273 i32.const 21056 call $~lib/string/String.__eq i32.eqz @@ -16127,7 +16416,7 @@ end f64.const 1e7 call $~lib/util/number/dtoa - local.tee $279 + local.tee $274 i32.const 21104 call $~lib/string/String.__eq i32.eqz @@ -16141,7 +16430,7 @@ end f64.const 1e-07 call $~lib/util/number/dtoa - local.tee $280 + local.tee $275 i32.const 21152 call $~lib/string/String.__eq i32.eqz @@ -16155,7 +16444,7 @@ end f64.const 1.e+308 call $~lib/util/number/dtoa - local.tee $281 + local.tee $276 i32.const 4336 call $~lib/string/String.__eq i32.eqz @@ -16169,7 +16458,7 @@ end f64.const -1.e+308 call $~lib/util/number/dtoa - local.tee $282 + local.tee $277 i32.const 21184 call $~lib/string/String.__eq i32.eqz @@ -16183,7 +16472,7 @@ end f64.const inf call $~lib/util/number/dtoa - local.tee $283 + local.tee $278 i32.const 19392 call $~lib/string/String.__eq i32.eqz @@ -16197,7 +16486,7 @@ end f64.const -inf call $~lib/util/number/dtoa - local.tee $284 + local.tee $279 i32.const 7552 call $~lib/string/String.__eq i32.eqz @@ -16211,7 +16500,7 @@ end f64.const 1e-308 call $~lib/util/number/dtoa - local.tee $285 + local.tee $280 i32.const 21216 call $~lib/string/String.__eq i32.eqz @@ -16225,7 +16514,7 @@ end f64.const -1e-308 call $~lib/util/number/dtoa - local.tee $286 + local.tee $281 i32.const 21248 call $~lib/string/String.__eq i32.eqz @@ -16239,7 +16528,7 @@ end f64.const 1e-323 call $~lib/util/number/dtoa - local.tee $287 + local.tee $282 i32.const 21280 call $~lib/string/String.__eq i32.eqz @@ -16253,7 +16542,7 @@ end f64.const -1e-323 call $~lib/util/number/dtoa - local.tee $288 + local.tee $283 i32.const 21312 call $~lib/string/String.__eq i32.eqz @@ -16267,7 +16556,7 @@ end f64.const 0 call $~lib/util/number/dtoa - local.tee $289 + local.tee $284 i32.const 19360 call $~lib/string/String.__eq i32.eqz @@ -16281,7 +16570,7 @@ end f64.const 4294967272 call $~lib/util/number/dtoa - local.tee $290 + local.tee $285 i32.const 21344 call $~lib/string/String.__eq i32.eqz @@ -16295,7 +16584,7 @@ end f64.const 1.2312145673456234e-08 call $~lib/util/number/dtoa - local.tee $291 + local.tee $286 i32.const 21392 call $~lib/string/String.__eq i32.eqz @@ -16309,7 +16598,7 @@ end f64.const 555555555.5555556 call $~lib/util/number/dtoa - local.tee $292 + local.tee $287 i32.const 21456 call $~lib/string/String.__eq i32.eqz @@ -16323,7 +16612,7 @@ end f64.const 0.9999999999999999 call $~lib/util/number/dtoa - local.tee $293 + local.tee $288 i32.const 21520 call $~lib/string/String.__eq i32.eqz @@ -16337,7 +16626,7 @@ end f64.const 1 call $~lib/util/number/dtoa - local.tee $294 + local.tee $289 i32.const 20832 call $~lib/string/String.__eq i32.eqz @@ -16351,7 +16640,7 @@ end f64.const 12.34 call $~lib/util/number/dtoa - local.tee $295 + local.tee $290 i32.const 21584 call $~lib/string/String.__eq i32.eqz @@ -16365,7 +16654,7 @@ end f64.const 0.3333333333333333 call $~lib/util/number/dtoa - local.tee $296 + local.tee $291 i32.const 21616 call $~lib/string/String.__eq i32.eqz @@ -16379,7 +16668,7 @@ end f64.const 1234e17 call $~lib/util/number/dtoa - local.tee $297 + local.tee $292 i32.const 21680 call $~lib/string/String.__eq i32.eqz @@ -16393,7 +16682,7 @@ end f64.const 1234e18 call $~lib/util/number/dtoa - local.tee $298 + local.tee $293 i32.const 21744 call $~lib/string/String.__eq i32.eqz @@ -16407,7 +16696,7 @@ end f64.const 2.71828 call $~lib/util/number/dtoa - local.tee $299 + local.tee $294 i32.const 21792 call $~lib/string/String.__eq i32.eqz @@ -16421,7 +16710,7 @@ end f64.const 0.0271828 call $~lib/util/number/dtoa - local.tee $5 + local.tee $295 i32.const 21824 call $~lib/string/String.__eq i32.eqz @@ -16435,7 +16724,7 @@ end f64.const 271.828 call $~lib/util/number/dtoa - local.tee $2 + local.tee $296 i32.const 21872 call $~lib/string/String.__eq i32.eqz @@ -16449,7 +16738,7 @@ end f64.const 1.1e+128 call $~lib/util/number/dtoa - local.tee $4 + local.tee $297 i32.const 21904 call $~lib/string/String.__eq i32.eqz @@ -16463,7 +16752,7 @@ end f64.const 1.1e-64 call $~lib/util/number/dtoa - local.tee $1 + local.tee $298 i32.const 21936 call $~lib/string/String.__eq i32.eqz @@ -16477,7 +16766,7 @@ end f64.const 0.000035689 call $~lib/util/number/dtoa - local.tee $0 + local.tee $299 i32.const 21968 call $~lib/string/String.__eq i32.eqz @@ -16491,10 +16780,6 @@ end global.get $std/string/str call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release local.get $9 call $~lib/rt/pure/__release local.get $10 @@ -16509,6 +16794,10 @@ call $~lib/rt/pure/__release local.get $15 call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release local.get $16 call $~lib/rt/pure/__release local.get $17 @@ -16563,16 +16852,20 @@ call $~lib/rt/pure/__release local.get $43 call $~lib/rt/pure/__release - local.get $47 - call $~lib/rt/pure/__release - local.get $48 + local.get $45 call $~lib/rt/pure/__release local.get $46 call $~lib/rt/pure/__release - local.get $45 - call $~lib/rt/pure/__release local.get $44 call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $47 + call $~lib/rt/pure/__release + local.get $48 + call $~lib/rt/pure/__release local.get $49 call $~lib/rt/pure/__release local.get $50 @@ -16699,16 +16992,22 @@ call $~lib/rt/pure/__release local.get $111 call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release local.get $112 call $~lib/rt/pure/__release local.get $113 call $~lib/rt/pure/__release local.get $114 call $~lib/rt/pure/__release - local.get $116 - call $~lib/rt/pure/__release local.get $115 call $~lib/rt/pure/__release + local.get $116 + call $~lib/rt/pure/__release local.get $117 call $~lib/rt/pure/__release local.get $118 @@ -17075,16 +17374,6 @@ call $~lib/rt/pure/__release local.get $299 call $~lib/rt/pure/__release - local.get $5 - 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 $0 - call $~lib/rt/pure/__release ) (func $std/string/getString (result i32) global.get $std/string/str diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index 35c2d5f686..5f20449512 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -1,7 +1,7 @@ (module - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_none (func)) (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) @@ -327,14 +327,6 @@ call $~lib/memory/memory.fill local.get $1 ) - (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/hash/hashStr (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -344,7 +336,11 @@ local.get $0 if local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.const 1 i32.shl local.set $3 @@ -353,11 +349,11 @@ local.get $3 i32.lt_u if + local.get $1 local.get $0 local.get $2 i32.add i32.load8_u - local.get $1 i32.xor i32.const 16777619 i32.mul @@ -465,10 +461,18 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 local.get $0 @@ -532,38 +536,39 @@ local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - local.get $3 + local.set $6 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $6 + local.tee $7 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $3 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $7 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 - local.get $4 - local.get $7 + local.get $5 + local.get $8 i32.ne if - local.get $4 + local.get $5 + local.tee $4 i32.load offset=8 i32.const 1 i32.and @@ -578,6 +583,7 @@ i32.load offset=4 i32.store offset=4 local.get $2 + local.get $6 local.get $4 i32.load call $~lib/util/hash/hashStr @@ -585,12 +591,11 @@ i32.and i32.const 2 i32.shl - local.get $5 i32.add - local.tee $8 + local.tee $4 i32.load i32.store offset=8 - local.get $8 + local.get $4 local.get $2 i32.store local.get $2 @@ -598,30 +603,36 @@ i32.add local.set $2 end - local.get $4 + local.get $5 i32.const 12 i32.add - local.set $4 + local.set $5 br $while-continue|0 end end + local.get $6 + local.tee $2 local.get $0 i32.load + i32.ne drop local.get $0 - local.get $5 + local.get $2 i32.store local.get $0 local.get $1 i32.store offset=4 + local.get $3 + local.tee $1 local.get $0 i32.load offset=8 + i32.ne drop local.get $0 - local.get $3 + local.get $1 i32.store offset=8 local.get $0 - local.get $6 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -798,38 +809,39 @@ local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - local.get $3 + local.set $6 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $6 + local.tee $7 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $3 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $7 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 - local.get $4 - local.get $7 + local.get $5 + local.get $8 i32.ne if - local.get $4 + local.get $5 + local.tee $4 i32.load offset=8 i32.const 1 i32.and @@ -844,6 +856,7 @@ i32.load offset=4 i32.store offset=4 local.get $2 + local.get $6 local.get $4 i32.load call $~lib/util/hash/hash32 @@ -851,12 +864,11 @@ i32.and i32.const 2 i32.shl - local.get $5 i32.add - local.tee $8 + local.tee $4 i32.load i32.store offset=8 - local.get $8 + local.get $4 local.get $2 i32.store local.get $2 @@ -864,30 +876,36 @@ i32.add local.set $2 end - local.get $4 + local.get $5 i32.const 12 i32.add - local.set $4 + local.set $5 br $while-continue|0 end end + local.get $6 + local.tee $2 local.get $0 i32.load + i32.ne drop local.get $0 - local.get $5 + local.get $2 i32.store local.get $0 local.get $1 i32.store offset=4 + local.get $3 + local.tee $1 local.get $0 i32.load offset=8 + i32.ne drop local.get $0 - local.get $3 + local.get $1 i32.store offset=8 local.get $0 - local.get $6 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -1303,52 +1321,53 @@ end end ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/string/String#concat - local.get $0 - i32.const 1888 - local.get $0 - select - local.tee $3 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.tee $2 - local.get $1 - i32.const 1888 - local.get $1 - select - local.tee $1 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.tee $4 - i32.add - local.tee $0 - i32.eqz - if - i32.const 1392 - local.set $0 - br $__inlined_func$~lib/string/String#concat - end - local.get $0 - i32.const 1 - call $~lib/rt/stub/__alloc - local.tee $0 - local.get $3 - local.get $2 - call $~lib/memory/memory.copy - local.get $0 - local.get $2 - i32.add - local.get $1 - local.get $4 - call $~lib/memory/memory.copy + local.get $1 + i32.const 1888 + local.get $1 + select + local.tee $3 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $4 + local.get $0 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $1 + i32.add + local.tee $2 + i32.eqz + if + i32.const 1392 + return end + local.get $2 + i32.const 1 + call $~lib/rt/stub/__alloc + local.tee $2 local.get $0 + local.get $1 + call $~lib/memory/memory.copy + local.get $1 + local.get $2 + i32.add + local.get $3 + local.get $4 + call $~lib/memory/memory.copy + local.get $2 ) (func $~lib/symbol/_Symbol#toString (param $0 i32) (result i32) i32.const 1856 @@ -1419,13 +1438,16 @@ i32.const 1392 end end - call $~lib/string/String.__concat + call $~lib/string/String#concat + local.tee $0 + i32.const 1888 + local.get $0 + select i32.const 1920 - call $~lib/string/String.__concat + call $~lib/string/String#concat ) (func $start:std/symbol (local $0 i32) - (local $1 i32) call $~lib/symbol/Symbol global.set $std/symbol/sym1 call $~lib/symbol/Symbol @@ -1485,7 +1507,6 @@ global.get $std/symbol/sym3 call $~lib/symbol/_Symbol.keyFor local.tee $0 - local.get $0 i32.eqz if i32.const 1344 @@ -1495,11 +1516,11 @@ call $~lib/builtins/abort unreachable end + local.get $0 global.set $std/symbol/key3 global.get $std/symbol/sym4 call $~lib/symbol/_Symbol.keyFor local.tee $0 - local.get $0 i32.eqz if i32.const 1344 @@ -1509,6 +1530,7 @@ call $~lib/builtins/abort unreachable end + local.get $0 global.set $std/symbol/key4 global.get $std/symbol/key3 i32.const 1040 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 577660b0fb..24394f3f53 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -25,6 +25,7 @@ (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) (type $i32_f32_i32_=>_i32 (func (param i32 f32 i32) (result i32))) (type $i32_f64_i32_=>_i32 (func (param i32 f64 i32) (result i32))) + (type $i64_=>_i32 (func (param i64) (result i32))) (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) (type $f32_i32_i32_=>_f32 (func (param f32 i32 i32) (result f32))) (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) @@ -37,7 +38,6 @@ (type $none_=>_i32 (func (result i32))) (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $i32_f32_=>_i32 (func (param i32 f32) (result i32))) - (type $i64_=>_i32 (func (param i64) (result i32))) (type $f64_=>_i32 (func (param f64) (result i32))) (type $f32_=>_f32 (func (param f32) (result f32))) (type $f64_=>_f64 (func (param f64) (result f64))) @@ -1349,14 +1349,6 @@ call $~lib/rt/rtrace/onalloc local.get $3 ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (param $1 i32) (result i32) - call $~lib/rt/tlsf/maybeInitialize - local.get $0 - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 16 - i32.add - ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i64) @@ -1587,9 +1579,12 @@ local.get $0 i32.eqz if + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 2 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $0 end @@ -1615,19 +1610,21 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize local.get $1 local.get $2 i32.shl local.tee $3 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 i32.const 0 local.get $3 call $~lib/memory/memory.fill local.get $1 - local.set $2 - local.get $1 + local.tee $2 local.get $0 i32.load local.tee $4 @@ -1651,106 +1648,132 @@ local.get $0 ) (func $~lib/typedarray/Int8Array#constructor (param $0 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 3 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.get $0 i32.const 0 call $~lib/arraybuffer/ArrayBufferView#constructor ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub - ) (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 4 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.get $0 i32.const 0 call $~lib/arraybuffer/ArrayBufferView#constructor ) (func $~lib/typedarray/Uint8ClampedArray#constructor (param $0 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 5 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.get $0 i32.const 0 call $~lib/arraybuffer/ArrayBufferView#constructor ) (func $~lib/typedarray/Int16Array#constructor (param $0 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 6 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.get $0 i32.const 1 call $~lib/arraybuffer/ArrayBufferView#constructor ) (func $~lib/typedarray/Uint16Array#constructor (param $0 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 7 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.get $0 i32.const 1 call $~lib/arraybuffer/ArrayBufferView#constructor ) (func $~lib/typedarray/Int32Array#constructor (param $0 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 8 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.get $0 i32.const 2 call $~lib/arraybuffer/ArrayBufferView#constructor ) (func $~lib/typedarray/Uint32Array#constructor (param $0 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 9 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.get $0 i32.const 2 call $~lib/arraybuffer/ArrayBufferView#constructor ) (func $~lib/typedarray/Int64Array#constructor (param $0 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 10 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.get $0 i32.const 3 call $~lib/arraybuffer/ArrayBufferView#constructor ) (func $~lib/typedarray/Uint64Array#constructor (param $0 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 11 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.get $0 i32.const 3 call $~lib/arraybuffer/ArrayBufferView#constructor ) (func $~lib/typedarray/Float32Array#constructor (param $0 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 12 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.get $0 i32.const 2 call $~lib/arraybuffer/ArrayBufferView#constructor ) (func $~lib/typedarray/Float64Array#constructor (param $0 i32) (result i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 13 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.get $0 i32.const 3 @@ -1771,7 +1794,10 @@ local.get $0 call $~lib/typedarray/Int8Array#constructor local.tee $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -1807,7 +1833,10 @@ local.get $0 call $~lib/typedarray/Uint8Array#constructor local.tee $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $2 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -1843,7 +1872,10 @@ local.get $0 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $3 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -1879,7 +1911,10 @@ local.get $0 call $~lib/typedarray/Int16Array#constructor local.tee $4 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $4 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -1919,7 +1954,10 @@ local.get $0 call $~lib/typedarray/Uint16Array#constructor local.tee $5 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $5 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -1959,7 +1997,10 @@ local.get $0 call $~lib/typedarray/Int32Array#constructor local.tee $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $6 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -1999,7 +2040,10 @@ local.get $0 call $~lib/typedarray/Uint32Array#constructor local.tee $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $7 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -2039,7 +2083,10 @@ local.get $0 call $~lib/typedarray/Int64Array#constructor local.tee $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $8 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -2079,7 +2126,10 @@ local.get $0 call $~lib/typedarray/Uint64Array#constructor local.tee $9 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $9 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -2119,7 +2169,10 @@ local.get $0 call $~lib/typedarray/Float32Array#constructor local.tee $10 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $10 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -2159,7 +2212,10 @@ local.get $0 call $~lib/typedarray/Float64Array#constructor local.tee $11 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $11 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -2320,9 +2376,12 @@ select end local.set $1 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 8 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $4 i32.load @@ -2431,9 +2490,12 @@ select end local.set $1 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 13 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $4 i32.load @@ -2614,6 +2676,7 @@ local.get $2 call $~lib/rt/pure/__retain local.set $7 + call $~lib/rt/tlsf/maybeInitialize local.get $1 i32.const 31 i32.add @@ -2623,7 +2686,9 @@ i32.shl local.tee $2 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $5 i32.const 0 local.get $2 @@ -3323,35 +3388,40 @@ (func $~lib/rt/__allocArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) + (local $6 i32) + call $~lib/rt/tlsf/maybeInitialize i32.const 16 local.get $2 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 + call $~lib/rt/tlsf/maybeInitialize local.get $0 local.get $1 i32.shl - local.tee $1 - local.set $5 - local.get $1 + local.tee $5 + local.tee $6 i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.set $1 local.get $3 if - local.get $4 + local.get $1 local.get $3 - local.get $5 + local.get $6 call $~lib/memory/memory.copy end - local.get $4 - local.tee $3 + local.get $1 call $~lib/rt/pure/__retain i32.store local.get $2 - local.get $3 + local.get $1 i32.store offset=4 local.get $2 - local.get $1 + local.get $5 i32.store offset=8 local.get $2 local.get $0 @@ -3377,13 +3447,6 @@ i32.add i32.load8_s ) - (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_s - ) (func $std/typedarray/isInt8ArrayEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -3412,7 +3475,6 @@ local.get $0 local.get $2 call $~lib/typedarray/Int8Array#__get - local.set $4 local.get $2 local.get $1 i32.load offset=12 @@ -3425,10 +3487,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 local.get $2 - call $~lib/array/Array#__uget - local.get $4 + local.get $1 + i32.load offset=4 + i32.add + i32.load8_s i32.ne br_if $folding-inner0 local.get $2 @@ -3503,9 +3566,12 @@ select end local.set $1 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 3 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $4 i32.load @@ -4455,13 +4521,19 @@ local.get $2 i32.load offset=4 local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 3 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $3 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 loop $for-loop|0 local.get $1 @@ -4531,13 +4603,19 @@ local.get $2 i32.load offset=4 local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 4 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $3 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 loop $for-loop|0 local.get $1 @@ -4626,13 +4704,19 @@ local.get $2 i32.load offset=4 local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 5 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $3 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 loop $for-loop|0 local.get $1 @@ -4706,16 +4790,22 @@ local.get $1 i32.load offset=4 local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 6 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $2 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 1 i32.shl local.tee $7 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 loop $for-loop|0 local.get $3 @@ -4815,16 +4905,22 @@ local.get $1 i32.load offset=4 local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 7 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $2 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 1 i32.shl local.tee $7 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 loop $for-loop|0 local.get $3 @@ -4924,16 +5020,22 @@ local.get $1 i32.load offset=4 local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 8 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $2 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 2 i32.shl local.tee $7 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 loop $for-loop|0 local.get $3 @@ -5010,16 +5112,22 @@ local.get $1 i32.load offset=4 local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 9 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $2 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 2 i32.shl local.tee $7 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 loop $for-loop|0 local.get $3 @@ -5124,16 +5232,22 @@ local.get $1 i32.load offset=4 local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 10 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $2 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 3 i32.shl local.tee $7 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 loop $for-loop|0 local.get $3 @@ -5233,16 +5347,22 @@ local.get $1 i32.load offset=4 local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 11 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $2 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 3 i32.shl local.tee $7 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 loop $for-loop|0 local.get $3 @@ -5347,16 +5467,22 @@ local.get $1 i32.load offset=4 local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 12 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $2 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 2 i32.shl local.tee $7 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 loop $for-loop|0 local.get $3 @@ -5461,16 +5587,22 @@ local.get $1 i32.load offset=4 local.set $6 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 13 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $2 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 3 i32.shl local.tee $7 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 loop $for-loop|0 local.get $3 @@ -5662,13 +5794,19 @@ local.get $2 i32.load offset=8 local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 3 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $3 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $6 local.get $2 i32.load offset=4 @@ -5762,7 +5900,10 @@ local.get $0 call $~lib/typedarray/Int8Array#filter local.tee $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -5854,13 +5995,19 @@ local.get $2 i32.load offset=8 local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 4 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $3 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $6 local.get $2 i32.load offset=4 @@ -5954,7 +6101,10 @@ local.get $0 call $~lib/typedarray/Uint8Array#filter local.tee $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -6039,13 +6189,19 @@ local.get $2 i32.load offset=8 local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 5 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $3 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $6 local.get $2 i32.load offset=4 @@ -6139,7 +6295,10 @@ local.get $0 call $~lib/typedarray/Uint8ClampedArray#filter local.tee $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -6235,15 +6394,21 @@ i32.const 1 i32.shr_u local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 6 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 1 i32.shl i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $6 local.get $3 i32.load offset=4 @@ -6344,7 +6509,10 @@ local.get $0 call $~lib/typedarray/Int16Array#filter local.tee $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -6440,15 +6608,21 @@ i32.const 1 i32.shr_u local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 7 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 1 i32.shl i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $6 local.get $3 i32.load offset=4 @@ -6549,7 +6723,10 @@ local.get $0 call $~lib/typedarray/Uint16Array#filter local.tee $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -6643,15 +6820,21 @@ i32.const 2 i32.shr_u local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 8 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 2 i32.shl i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $6 local.get $3 i32.load offset=4 @@ -6752,7 +6935,10 @@ local.get $0 call $~lib/typedarray/Int32Array#filter local.tee $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -6846,15 +7032,21 @@ i32.const 2 i32.shr_u local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 9 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 2 i32.shl i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $6 local.get $3 i32.load offset=4 @@ -6955,7 +7147,10 @@ local.get $0 call $~lib/typedarray/Uint32Array#filter local.tee $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -7049,15 +7244,21 @@ i32.const 3 i32.shr_u local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 10 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 3 i32.shl i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $6 local.get $3 i32.load offset=4 @@ -7158,7 +7359,10 @@ local.get $0 call $~lib/typedarray/Int64Array#filter local.tee $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -7252,15 +7456,21 @@ i32.const 3 i32.shr_u local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 11 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 3 i32.shl i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $6 local.get $3 i32.load offset=4 @@ -7361,7 +7571,10 @@ local.get $0 call $~lib/typedarray/Uint64Array#filter local.tee $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -7455,15 +7668,21 @@ i32.const 2 i32.shr_u local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 12 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 2 i32.shl i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $6 local.get $3 i32.load offset=4 @@ -7564,7 +7783,10 @@ local.get $0 call $~lib/typedarray/Float32Array#filter local.tee $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -7658,15 +7880,21 @@ i32.const 3 i32.shr_u local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 13 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $4 + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 3 i32.shl i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.set $6 local.get $3 i32.load offset=4 @@ -7767,7 +7995,10 @@ local.get $0 call $~lib/typedarray/Float64Array#filter local.tee $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -10639,9 +10870,12 @@ select end local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 4 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 local.get $3 i32.load @@ -10861,9 +11095,12 @@ select end local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 5 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 local.get $3 i32.load @@ -11141,9 +11378,12 @@ select end local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 6 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 local.get $3 i32.load @@ -11431,9 +11671,12 @@ select end local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 7 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 local.get $3 i32.load @@ -11867,9 +12110,12 @@ select end local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 9 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 local.get $3 i32.load @@ -12145,9 +12391,12 @@ select end local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 10 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 local.get $3 i32.load @@ -12370,9 +12619,12 @@ select end local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 11 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 local.get $3 i32.load @@ -12651,9 +12903,12 @@ select end local.set $0 + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 12 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 local.get $3 i32.load @@ -18760,7 +19015,7 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $1 + local.tee $2 if i32.const 0 local.get $0 @@ -18769,34 +19024,31 @@ end local.get $0 call $~lib/util/number/decimalCount32 - local.get $1 + local.get $2 i32.add local.tee $3 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $2 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $1 local.get $0 local.get $3 call $~lib/util/number/utoa_dec_simple - local.get $1 + local.get $2 if - local.get $2 + local.get $1 i32.const 45 i32.store16 end - local.get $2 + local.get $1 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_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 @@ -18864,7 +19116,11 @@ (local $4 i32) i32.const 0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 i32.const 0 local.get $2 @@ -18920,9 +19176,12 @@ call $~lib/rt/pure/__retain return end + call $~lib/rt/tlsf/maybeInitialize local.get $3 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 local.get $1 @@ -18966,7 +19225,11 @@ end local.get $4 local.get $3 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $5 i32.const 11 i32.add @@ -18976,8 +19239,13 @@ local.tee $7 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 @@ -19177,10 +19445,18 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 local.get $0 @@ -19211,16 +19487,21 @@ end local.get $0 call $~lib/util/number/decimalCount32 - local.tee $1 + local.tee $2 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $2 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $1 local.get $0 - local.get $1 - call $~lib/util/number/utoa_dec_simple local.get $2 + call $~lib/util/number/utoa_dec_simple + local.get $1 call $~lib/rt/pure/__retain ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) @@ -19287,7 +19568,11 @@ end local.get $4 local.get $3 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $5 i32.const 10 i32.add @@ -19297,8 +19582,13 @@ local.tee $7 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 @@ -19476,7 +19766,11 @@ end local.get $4 local.get $3 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $5 i32.const 11 i32.add @@ -19486,8 +19780,13 @@ local.tee $7 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 @@ -19640,9 +19939,13 @@ end local.get $4 local.get $3 - call $~lib/string/String#get:length - local.tee $5 - i32.const 10 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 10 i32.add i32.mul i32.const 10 @@ -19650,8 +19953,13 @@ local.tee $7 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 @@ -19817,7 +20125,11 @@ end local.get $4 local.get $3 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $5 i32.const 11 i32.add @@ -19827,8 +20139,13 @@ local.tee $7 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 @@ -19972,7 +20289,11 @@ end local.get $4 local.get $3 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $5 i32.const 10 i32.add @@ -19982,8 +20303,13 @@ local.tee $7 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 @@ -20148,6 +20474,81 @@ br_if $do-continue|0 end ) + (func $~lib/util/number/itoa64 (param $0 i64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + i64.eqz + if + i32.const 7040 + return + end + local.get $0 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.tee $2 + if + i64.const 0 + local.get $0 + i64.sub + local.set $0 + end + local.get $0 + i64.const 4294967295 + i64.le_u + if + local.get $0 + i32.wrap_i64 + local.tee $3 + call $~lib/util/number/decimalCount32 + local.get $2 + i32.add + local.tee $4 + i32.const 1 + i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 + i32.const 1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $1 + local.get $3 + local.get $4 + call $~lib/util/number/utoa_dec_simple + else + local.get $0 + call $~lib/util/number/decimalCount64High + local.get $2 + i32.add + local.tee $3 + i32.const 1 + i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 + i32.const 1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $1 + local.get $0 + local.get $3 + call $~lib/util/number/utoa_dec_simple + end + local.get $2 + if + local.get $1 + i32.const 45 + i32.store16 + end + local.get $1 + call $~lib/rt/pure/__retain + ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) (local $2 i32) (local $3 i32) @@ -20211,117 +20612,66 @@ ) (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) i32.const 7168 call $~lib/rt/pure/__retain - local.set $4 + local.set $3 local.get $1 i32.const 1 i32.sub - local.tee $5 + local.tee $4 i32.const 0 i32.lt_s if - local.get $4 + local.get $3 call $~lib/rt/pure/__release i32.const 6832 return end - local.get $5 + local.get $4 i32.eqz if - block $__inlined_func$~lib/util/number/itoa64 (result i32) - i32.const 7040 - 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 $5 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/tlsf/__alloc - local.tee $1 - local.get $2 - local.get $5 - 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 $4 + local.get $0 + i64.load + i32.wrap_i64 + i64.extend_i32_s + call $~lib/util/number/itoa64 + local.get $3 call $~lib/rt/pure/__release return end - local.get $5 local.get $4 - call $~lib/string/String#get:length - local.tee $6 + local.get $3 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + local.tee $5 i32.const 21 i32.add i32.mul i32.const 21 i32.add - local.tee $8 + local.tee $7 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 - local.get $7 - local.get $5 + local.get $6 + local.get $4 i32.lt_s if local.get $1 @@ -20330,7 +20680,7 @@ i32.shl i32.add local.get $0 - local.get $7 + local.get $6 i32.const 3 i32.shl i32.add @@ -20339,38 +20689,38 @@ local.get $2 i32.add local.set $2 - local.get $6 + local.get $5 if local.get $1 local.get $2 i32.const 1 i32.shl i32.add - local.get $4 - local.get $6 + local.get $3 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $2 - local.get $6 + local.get $5 i32.add local.set $2 end - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|0 end end - local.get $8 + local.get $7 local.get $1 local.get $2 i32.const 1 i32.shl i32.add local.get $0 - local.get $5 + local.get $4 i32.const 3 i32.shl i32.add @@ -20384,13 +20734,13 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.get $4 + local.get $3 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release return end - local.get $4 + local.get $3 call $~lib/rt/pure/__release local.get $1 ) @@ -20488,8 +20838,13 @@ local.tee $2 i32.const 1 i32.shl + local.set $0 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $0 local.get $1 local.get $2 @@ -20500,8 +20855,13 @@ local.tee $1 i32.const 1 i32.shl + local.set $0 + call $~lib/rt/tlsf/maybeInitialize + local.get $0 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $0 local.get $5 local.get $1 @@ -20516,7 +20876,11 @@ end local.get $4 local.get $3 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $6 i32.const 20 i32.add @@ -20526,8 +20890,13 @@ local.tee $8 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 @@ -21556,9 +21925,12 @@ call $~lib/rt/pure/__retain return end + call $~lib/rt/tlsf/maybeInitialize i32.const 56 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 local.get $0 call $~lib/util/number/dtoa_core @@ -21683,7 +22055,11 @@ end local.get $4 local.get $3 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $5 i32.const 28 i32.add @@ -21693,8 +22069,13 @@ local.tee $7 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 @@ -21819,7 +22200,11 @@ end local.get $4 local.get $3 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $5 i32.const 28 i32.add @@ -21829,8 +22214,13 @@ local.tee $7 i32.const 1 i32.shl + local.set $1 + call $~lib/rt/tlsf/maybeInitialize + local.get $1 i32.const 1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.set $1 loop $for-loop|0 @@ -21932,9 +22322,12 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $1 i32.const 0 local.get $0 @@ -22001,9 +22394,12 @@ unreachable end end + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 4 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $3 call $~lib/rt/pure/__retain @@ -22076,6 +22472,7 @@ select end local.set $1 + call $~lib/rt/tlsf/maybeInitialize local.get $2 i32.const 0 i32.lt_s @@ -22107,7 +22504,9 @@ select local.tee $2 i32.const 0 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $3 local.get $0 local.get $1 @@ -22132,13 +22531,13 @@ call $~lib/typedarray/Int8Array#constructor local.tee $5 call $~lib/rt/pure/__retain - local.set $2 + local.set $1 loop $for-loop|0 local.get $0 local.get $3 i32.lt_s if - local.get $2 + local.get $1 local.get $0 i32.const 8432 local.get $0 @@ -22155,14 +22554,20 @@ br $for-loop|0 end end - local.get $2 + local.get $1 i32.load - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + local.get $1 i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.set $4 @@ -22176,10 +22581,10 @@ i32.const 16 i32.sub i32.load offset=12 - local.tee $1 + local.tee $2 local.set $7 i32.const 0 - local.get $1 + local.get $2 i32.gt_u if i32.const 1376 @@ -22189,22 +22594,25 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 3 - call $~lib/rt/tlsf/__alloc - local.tee $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 local.get $0 call $~lib/rt/pure/__retain i32.store - local.get $1 + local.get $2 local.get $7 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 i32.store offset=4 - local.get $1 + local.get $2 call $~lib/rt/pure/__retain - local.set $1 + local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $6 @@ -22216,10 +22624,10 @@ local.get $3 i32.lt_s if - local.get $2 + local.get $1 local.get $0 call $~lib/typedarray/Int8Array#__get - local.get $1 + local.get $2 local.get $0 call $~lib/typedarray/Int8Array#__get i32.ne @@ -22242,11 +22650,11 @@ call $~lib/rt/pure/__release i32.const 8432 call $~lib/rt/pure/__release - local.get $2 + local.get $1 call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $1 + local.get $2 call $~lib/rt/pure/__release ) (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> @@ -22286,11 +22694,17 @@ local.get $1 i32.load local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load + i32.sub local.get $1 i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.set $3 @@ -22355,13 +22769,13 @@ call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $5 call $~lib/rt/pure/__retain - local.set $2 + local.set $1 loop $for-loop|0 local.get $0 local.get $3 i32.lt_s if - local.get $2 + local.get $1 local.get $0 i32.const 8432 local.get $0 @@ -22376,14 +22790,20 @@ br $for-loop|0 end end - local.get $2 + local.get $1 i32.load - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $2 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub + local.get $1 i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.set $4 @@ -22397,10 +22817,10 @@ i32.const 16 i32.sub i32.load offset=12 - local.tee $1 + local.tee $2 local.set $7 i32.const 0 - local.get $1 + local.get $2 i32.gt_u if i32.const 1376 @@ -22410,22 +22830,25 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 5 - call $~lib/rt/tlsf/__alloc - local.tee $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + local.tee $2 local.get $0 call $~lib/rt/pure/__retain i32.store - local.get $1 + local.get $2 local.get $7 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 i32.store offset=4 - local.get $1 + local.get $2 call $~lib/rt/pure/__retain - local.set $1 + local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $6 @@ -22437,10 +22860,10 @@ local.get $3 i32.lt_s if - local.get $2 + local.get $1 local.get $0 call $~lib/typedarray/Uint8ClampedArray#__get - local.get $1 + local.get $2 local.get $0 call $~lib/typedarray/Uint8ClampedArray#__get i32.ne @@ -22463,11 +22886,11 @@ call $~lib/rt/pure/__release i32.const 8432 call $~lib/rt/pure/__release - local.get $2 + local.get $1 call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $1 + local.get $2 call $~lib/rt/pure/__release ) (func $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> @@ -22511,11 +22934,17 @@ local.get $1 i32.load local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub + local.get $1 + i32.load offset=8 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 local.get $1 - i32.load offset=8 + i32.load + i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.set $4 @@ -22551,9 +22980,12 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 6 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 call $~lib/rt/pure/__retain @@ -22650,11 +23082,17 @@ local.get $1 i32.load local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load + i32.sub local.get $1 i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.set $4 @@ -22690,9 +23128,12 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 7 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 call $~lib/rt/pure/__retain @@ -22787,11 +23228,17 @@ local.get $1 i32.load local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load + i32.sub local.get $1 i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.set $4 @@ -22827,9 +23274,12 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 8 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 call $~lib/rt/pure/__retain @@ -22924,11 +23374,17 @@ local.get $1 i32.load local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load + i32.sub local.get $1 i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.set $4 @@ -22964,9 +23420,12 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 9 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 call $~lib/rt/pure/__retain @@ -23062,11 +23521,17 @@ local.get $1 i32.load local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load + i32.sub local.get $1 i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.set $4 @@ -23102,9 +23567,12 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 10 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 call $~lib/rt/pure/__retain @@ -23200,11 +23668,17 @@ local.get $1 i32.load local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load + i32.sub local.get $1 i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.set $4 @@ -23240,9 +23714,12 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 11 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 call $~lib/rt/pure/__retain @@ -23338,11 +23815,17 @@ local.get $1 i32.load local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load + i32.sub local.get $1 i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.set $4 @@ -23378,9 +23861,12 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 12 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 call $~lib/rt/pure/__retain @@ -23476,11 +23962,17 @@ local.get $1 i32.load local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load + i32.sub local.get $1 i32.load offset=8 + local.get $1 + i32.load offset=4 + local.get $1 + i32.load + i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.set $4 @@ -23516,9 +24008,12 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize i32.const 12 i32.const 13 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add local.tee $2 local.get $0 call $~lib/rt/pure/__retain @@ -23651,7 +24146,7 @@ local.set $1 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 local.get $1 i32.load offset=12 i32.ne @@ -23665,26 +24160,30 @@ end loop $for-loop|0 local.get $2 - local.get $3 + local.get $4 i32.lt_s if local.get $2 - local.get $0 + local.get $1 i32.load offset=4 i32.add i32.load8_s - local.tee $4 - local.get $1 + local.tee $3 + local.set $5 + local.get $3 local.get $2 - call $~lib/array/Array#__uget - local.tee $5 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_s + local.tee $3 i32.ne if i32.const 8768 i32.const 3 local.get $2 f64.convert_i32_s - local.get $4 + local.get $3 f64.convert_i32_s local.get $5 f64.convert_i32_s @@ -24230,20 +24729,6 @@ local.get $8 call $~lib/rt/pure/__release ) - (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.add - i32.load8_u - ) (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -24257,7 +24742,7 @@ local.set $1 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 local.get $1 i32.load offset=12 i32.ne @@ -24271,24 +24756,30 @@ end loop $for-loop|0 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 + i32.load offset=4 + i32.add + i32.load8_u + local.tee $3 + local.set $5 + local.get $3 local.get $2 - call $~lib/array/Array#__uget - local.tee $5 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + local.tee $3 i32.ne if i32.const 8976 i32.const 3 local.get $2 f64.convert_i32_s - local.get $4 + local.get $3 f64.convert_i32_u local.get $5 f64.convert_i32_u @@ -24702,7 +25193,7 @@ local.set $1 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 local.get $1 i32.load offset=12 i32.ne @@ -24716,24 +25207,30 @@ end loop $for-loop|0 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 + i32.load offset=4 + i32.add + i32.load8_u + local.tee $3 + local.set $5 + local.get $3 local.get $2 - call $~lib/array/Array#__uget - local.tee $5 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + local.tee $3 i32.ne if i32.const 9184 i32.const 3 local.get $2 f64.convert_i32_s - local.get $4 + local.get $3 f64.convert_i32_u local.get $5 f64.convert_i32_u @@ -30131,7 +30628,10 @@ unreachable end local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $0 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -30213,7 +30713,10 @@ unreachable end local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub i32.const 4 i32.ne if @@ -30253,46 +30756,46 @@ call $~lib/rt/pure/__release i32.const 8 call $~lib/typedarray/Float64Array#constructor - local.tee $0 + local.tee $1 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 2 f64.const 7 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 3 f64.const 6 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 4 f64.const 5 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 5 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 6 f64.const 3 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 7 f64.const 8 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 6 call $~lib/typedarray/Float64Array#subarray - 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.load offset=8 i32.const 3 i32.shr_u @@ -30306,8 +30809,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $0 + i32.load offset=4 + local.get $0 + i32.load + i32.sub i32.const 16 i32.ne if @@ -30318,7 +30824,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 32 i32.ne @@ -30332,19 +30838,19 @@ end i32.const 0 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 1504 call $~lib/typedarray/Float64Array#sort i32.const 1504 call $~lib/rt/pure/__release call $~lib/rt/pure/__release - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 4 f64.eq if (result i32) - local.get $1 + local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 5 @@ -30353,7 +30859,7 @@ i32.const 0 end if (result i32) - local.get $1 + local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 6 @@ -30362,7 +30868,7 @@ i32.const 0 end if (result i32) - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#__get f64.const 7 @@ -30379,7 +30885,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 call $~lib/rt/pure/__release i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor @@ -30599,7 +31105,10 @@ unreachable end local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub i32.const 1 i32.ne if @@ -30843,7 +31352,10 @@ unreachable end local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub i32.const 4 i32.ne if @@ -30976,7 +31488,10 @@ unreachable end local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub i32.const 1 i32.ne if @@ -31029,7 +31544,10 @@ unreachable end local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $2 + i32.load + i32.sub i32.const 2 i32.ne if @@ -31082,7 +31600,10 @@ unreachable end local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $3 + i32.load + i32.sub i32.const 3 i32.ne if @@ -31577,7 +32098,10 @@ unreachable end local.get $2 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $2 + i32.load + i32.sub i32.const 4 i32.ne if @@ -31645,7 +32169,10 @@ unreachable end local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $1 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -31698,7 +32225,10 @@ unreachable end local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $3 + i32.load + i32.sub if i32.const 0 i32.const 1312 @@ -31752,9 +32282,15 @@ unreachable end local.get $4 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $4 + i32.load + i32.sub local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $0 + i32.load + i32.sub i32.ne if i32.const 0 diff --git a/tests/compiler/super-inline.optimized.wat b/tests/compiler/super-inline.optimized.wat index 3a7a9f164b..790c01d221 100644 --- a/tests/compiler/super-inline.optimized.wat +++ b/tests/compiler/super-inline.optimized.wat @@ -1,6 +1,6 @@ (module - (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_none (func)) + (type $i32_=>_i32 (func (param i32) (result i32))) (memory $0 0) (global $~lib/rt/stub/offset (mut i32) (i32.const 0)) (global $super-inline/foo (mut i32) (i32.const 0)) @@ -72,20 +72,11 @@ i32.store offset=12 local.get $3 ) - (func $super-inline/Foo#constructor (param $0 i32) (result i32) - local.get $0 - if (result i32) - local.get $0 - else - i32.const 3 - call $~lib/rt/stub/__alloc - end - ) (func $~start i32.const 1024 global.set $~lib/rt/stub/offset - i32.const 0 - call $super-inline/Foo#constructor + i32.const 3 + call $~lib/rt/stub/__alloc global.set $super-inline/foo block $__inlined_func$super-inline/Foo#a@virtual global.get $super-inline/foo @@ -93,12 +84,16 @@ i32.sub i32.load i32.const 4 - i32.ne + i32.eq br_if $__inlined_func$super-inline/Foo#a@virtual end i32.const 4 call $~lib/rt/stub/__alloc - call $super-inline/Foo#constructor - drop + i32.eqz + if + i32.const 3 + call $~lib/rt/stub/__alloc + drop + end ) ) diff --git a/tests/compiler/typeof.optimized.wat b/tests/compiler/typeof.optimized.wat index b51c195178..1a94644459 100644 --- a/tests/compiler/typeof.optimized.wat +++ b/tests/compiler/typeof.optimized.wat @@ -1,7 +1,6 @@ (module (type $none_=>_none (func)) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -18,14 +17,6 @@ (global $~started (mut i32) (i32.const 0)) (export "_start" (func $~start)) (export "memory" (memory $0)) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.const 1 - i32.shr_u - ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -119,10 +110,18 @@ select br_if $folding-inner0 local.get $0 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u local.tee $2 local.get $1 - call $~lib/string/String#get:length + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u i32.ne br_if $folding-inner0 local.get $0 diff --git a/tests/compiler/wasi/abort.optimized.wat b/tests/compiler/wasi/abort.optimized.wat index 1f8d5069ad..f98c518dbc 100644 --- a/tests/compiler/wasi/abort.optimized.wat +++ b/tests/compiler/wasi/abort.optimized.wat @@ -1,7 +1,7 @@ (module (type $none_=>_none (func)) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (import "wasi_snapshot_preview1" "fd_write" (func $~lib/bindings/wasi_snapshot_preview1/fd_write (param i32 i32 i32 i32) (result i32))) @@ -12,14 +12,6 @@ (export "_start" (func $~start)) (export "memory" (memory $0)) (export "test" (func $wasi/abort/test)) - (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/string/String.UTF8.encodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -241,7 +233,7 @@ (local $3 i32) (local $4 i32) i32.const 3 - local.set $1 + local.set $2 i32.const 4 local.set $0 i32.const 0 @@ -251,32 +243,36 @@ i64.const 9071471065260641 i64.store i32.const 1040 - i32.const 1040 - call $~lib/string/String#get:length + i32.const 1036 + i32.load + i32.const 1 + i32.shr_u i32.const 19 call $~lib/string/String.UTF8.encodeUnsafe i32.const 19 i32.add - local.tee $3 + local.tee $1 i32.const 544106784 i32.store - local.get $3 + local.get $1 i32.const 4 i32.add - local.tee $3 - i32.const 1088 + local.tee $1 i32.const 1088 - call $~lib/string/String#get:length - local.get $3 + i32.const 1084 + i32.load + i32.const 1 + i32.shr_u + local.get $1 call $~lib/string/String.UTF8.encodeUnsafe i32.add - local.tee $3 + local.tee $1 i32.const 40 i32.store8 i32.const 4 call $~lib/util/number/decimalCount32 local.tee $4 - local.get $3 + local.get $1 i32.const 1 i32.add i32.add @@ -306,37 +302,37 @@ i32.store8 i32.const 3 call $~lib/util/number/decimalCount32 - local.tee $2 + local.tee $1 local.get $0 i32.const 1 i32.add i32.add local.set $3 loop $do-continue|1 - local.get $1 + local.get $2 i32.const 10 i32.div_u local.get $3 i32.const 1 i32.sub local.tee $3 - local.get $1 + local.get $2 i32.const 10 i32.rem_u i32.const 48 i32.add i32.store8 - local.tee $1 + local.tee $2 br_if $do-continue|1 end - local.get $2 + local.get $1 local.get $3 i32.add - local.tee $1 + local.tee $2 i32.const 2601 i32.store16 i32.const 4 - local.get $1 + local.get $2 i32.const -10 i32.add i32.store diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index 264ec7194d..d3a2207ebc 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -1,6 +1,6 @@ (module - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $none_=>_none (func)) @@ -193,14 +193,6 @@ i32.store offset=12 local.get $3 ) - (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/string/String.UTF8.encodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -1607,19 +1599,21 @@ i32.const 544106784 i32.store i32.const 2000 - i32.const 2000 - call $~lib/string/String#get:length + i32.const 1996 + i32.load + i32.const 1 + i32.shr_u i32.const 23 call $~lib/string/String.UTF8.encodeUnsafe i32.const 23 i32.add - local.tee $3 + local.tee $2 i32.const 40 i32.store8 local.get $0 call $~lib/util/number/decimalCount32 local.tee $4 - local.get $3 + local.get $2 i32.const 1 i32.add i32.add @@ -1696,76 +1690,73 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) call $~lib/string/String.UTF8.byteLength - local.tee $7 - i32.const 56 - i32.gt_s - local.set $6 - local.get $7 + local.tee $6 i32.const 56 local.get $6 + i32.const 56 + i32.gt_s select i32.const 13 i32.add call $~lib/rt/stub/__alloc - local.tee $7 + local.tee $6 i32.const 8 i32.add local.tee $8 i32.const 4 i32.add - local.set $6 - local.get $7 + local.set $7 local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 i64.const 9071406388179572 i64.store - local.get $7 + local.get $6 i32.const 7 i32.store offset=4 i32.const 2 - local.get $7 + local.get $6 i32.const 1 local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop - local.get $7 - i32.const 1040 - i32.const 1040 - call $~lib/string/String#get:length local.get $6 + i32.const 1040 + i32.const 1036 + i32.load + i32.const 1 + i32.shr_u + local.get $7 call $~lib/string/String.UTF8.encodeUnsafe i32.store offset=4 i32.const 2 - local.get $7 + local.get $6 i32.const 1 local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 if (result i32) - local.get $6 + local.get $7 i32.const 32 i32.store8 local.get $6 + local.get $7 i32.const 1 i32.add - local.tee $6 + local.tee $7 + local.get $7 local.get $1 call $~lib/util/number/dtoa_buffered - local.set $9 local.get $7 - local.get $6 - local.get $9 - local.get $6 call $~lib/string/String.UTF8.encodeUnsafe i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $7 + local.get $6 i32.const 1 local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write @@ -1774,18 +1765,18 @@ i32.const 1 i32.gt_s if - local.get $7 - local.get $6 local.get $6 + local.get $7 + local.get $7 local.get $2 call $~lib/util/number/dtoa_buffered - local.get $6 + local.get $7 call $~lib/string/String.UTF8.encodeUnsafe i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $7 + local.get $6 i32.const 1 local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write @@ -1794,18 +1785,18 @@ i32.const 2 i32.gt_s if - local.get $7 - local.get $6 local.get $6 + local.get $7 + local.get $7 local.get $3 call $~lib/util/number/dtoa_buffered - local.get $6 + local.get $7 call $~lib/string/String.UTF8.encodeUnsafe i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $7 + local.get $6 i32.const 1 local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write @@ -1814,18 +1805,18 @@ i32.const 3 i32.gt_s if - local.get $7 - local.get $6 local.get $6 + local.get $7 + local.get $7 local.get $4 call $~lib/util/number/dtoa_buffered - local.get $6 + local.get $7 call $~lib/string/String.UTF8.encodeUnsafe i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $7 + local.get $6 i32.const 1 local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write @@ -1834,18 +1825,18 @@ i32.const 4 i32.gt_s if - local.get $7 - local.get $6 local.get $6 + local.get $7 + local.get $7 local.get $5 call $~lib/util/number/dtoa_buffered - local.get $6 + local.get $7 call $~lib/string/String.UTF8.encodeUnsafe i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $7 + local.get $6 i32.const 1 local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write @@ -1854,29 +1845,29 @@ end end end - local.get $6 + local.get $7 i32.const 1 i32.sub else - local.get $6 + local.get $7 end i32.const 10 i32.store8 - local.get $7 + local.get $6 i32.const 1 i32.store offset=4 i32.const 2 - local.get $7 + local.get $6 i32.const 1 local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop - local.get $7 + local.get $6 i32.const 15 i32.and i32.eqz i32.const 0 - local.get $7 + local.get $6 select i32.eqz if @@ -1885,7 +1876,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $7 + local.get $6 i32.const 16 i32.sub local.tee $0 @@ -1899,7 +1890,7 @@ unreachable end global.get $~lib/rt/stub/offset - local.get $7 + local.get $6 local.get $0 i32.load i32.add diff --git a/tests/compiler/while.optimized.wat b/tests/compiler/while.optimized.wat index 2d68ddf8bf..f6b729b018 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -1,11 +1,11 @@ (module (type $i32_=>_none (func (param i32))) (type $none_=>_none (func)) - (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) @@ -980,22 +980,17 @@ call $~lib/rt/rtrace/onalloc local.get $1 ) - (func $while/Ref#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 1216 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 @@ -1014,14 +1009,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 @@ -1034,7 +1029,7 @@ unreachable end end - local.get $1 + local.get $0 ) (func $~lib/rt/pure/__release (param $0 i32) local.get $0 @@ -1283,9 +1278,13 @@ global.set $while/ran i32.const 0 local.set $2 - call $while/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain local.set $0 - loop $while-continue|05 + loop $while-continue|02 local.get $0 if local.get $2 @@ -1303,14 +1302,18 @@ call $~lib/rt/pure/__release end else - call $while/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain local.set $1 local.get $0 call $~lib/rt/pure/__release end local.get $1 local.set $0 - br $while-continue|05 + br $while-continue|02 end end local.get $2 @@ -1351,11 +1354,19 @@ global.set $while/ran i32.const 0 local.set $2 - call $while/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain local.set $0 - loop $while-continue|06 + loop $while-continue|03 block $while-break|0 - call $while/Ref#constructor + call $~lib/rt/tlsf/maybeInitialize + call $~lib/rt/tlsf/allocateBlock + i32.const 16 + i32.add + call $~lib/rt/pure/__retain local.tee $1 call $~lib/rt/pure/__release local.get $1 @@ -1376,7 +1387,7 @@ local.set $0 br $while-break|0 end - br $while-continue|06 + br $while-continue|03 end end end @@ -1418,14 +1429,14 @@ global.set $while/ran i32.const 0 local.set $2 - loop $while-continue|02 + loop $while-continue|024 local.get $2 i32.const 1 i32.add local.tee $2 i32.const 1 i32.lt_s - br_if $while-continue|02 + br_if $while-continue|024 end i32.const 1 global.set $while/ran @@ -1433,14 +1444,14 @@ global.set $while/ran i32.const 0 local.set $2 - loop $while-continue|03 + loop $while-continue|035 local.get $2 i32.const 1 i32.add local.tee $2 i32.const 1 i32.lt_s - br_if $while-continue|03 + br_if $while-continue|035 end i32.const 1 global.set $while/ran