diff --git a/src/module.ts b/src/module.ts index e841e8c8f7..d8a61102cb 100644 --- a/src/module.ts +++ b/src/module.ts @@ -1496,9 +1496,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 e22480aec7..3f853f3ef8 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 0d5b20aeb9..8a2442c3f9 100644 --- a/tests/compiler/do.optimized.wat +++ b/tests/compiler/do.optimized.wat @@ -1,11 +1,11 @@ (module (type $none_=>_none (func)) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (result i32))) - (type $i32_=>_i32 (func (param i32) (result 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))) (memory $0 1) (data (i32.const 1024) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00d\00o\00.\00t\00s") @@ -964,15 +964,10 @@ end 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 $0 + local.get $0 i32.const 1216 i32.gt_u if @@ -1247,7 +1242,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 @@ -1265,7 +1264,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 @@ -1312,7 +1315,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 @@ -1332,7 +1339,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 4c3377a28d..b11fdea5d1 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") @@ -1034,14 +1034,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) @@ -1674,16 +1666,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 @@ -2041,9 +2039,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 17a007bcaa..0c685af875 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -1,11 +1,11 @@ (module (type $none_=>_none (func)) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (result i32))) - (type $i32_=>_i32 (func (param i32) (result 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))) (memory $0 1) (data (i32.const 1024) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\00f\00o\00r\00.\00t\00s") @@ -961,15 +961,10 @@ end 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 $0 + local.get $0 i32.const 1216 i32.gt_u if @@ -1026,6 +1021,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) @@ -1246,7 +1321,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 @@ -1266,7 +1345,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 @@ -1312,67 +1395,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 92346840ab..2a1d1cc31d 100644 --- a/tests/compiler/implicit-getter-setter.optimized.wat +++ b/tests/compiler/implicit-getter-setter.optimized.wat @@ -1104,9 +1104,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 @@ -1128,9 +1131,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 49496f7073..1dda007090 100644 --- a/tests/compiler/logical.optimized.wat +++ b/tests/compiler/logical.optimized.wat @@ -2,10 +2,10 @@ (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param 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))) (memory $0 1) (data (i32.const 1024) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s") @@ -929,13 +929,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 @@ -951,8 +944,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 @@ -966,12 +964,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 @@ -981,9 +985,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 2749bc68db..e8230a9888 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -1,6 +1,6 @@ (module - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_none (func)) (type $i32_i32_=>_none (func (param i32 i32))) (type $none_=>_i32 (func (result i32))) @@ -883,13 +883,6 @@ end 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) @@ -941,15 +934,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 36159d2e66..eb0d3a9405 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))) (memory $0 1) (data (i32.const 1024) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00w\00o\00r\00l\00d") @@ -1023,14 +1023,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) @@ -1091,14 +1083,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) @@ -1216,10 +1200,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 @@ -1412,6 +1404,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 @@ -1789,26 +1854,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 @@ -1837,9 +1902,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 @@ -1850,74 +1918,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 @@ -2005,31 +2015,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 @@ -2039,7 +2052,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 @@ -2052,7 +2065,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 f64.load offset=8 f64.const 0 f64.ne @@ -2064,73 +2077,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 call $start:object-literal diff --git a/tests/compiler/rc/logical-and-mismatch.optimized.wat b/tests/compiler/rc/logical-and-mismatch.optimized.wat index b3afce4f86..c8d58ebd01 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_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param 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))) (memory $0 1) (data (i32.const 1024) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") @@ -929,13 +929,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 @@ -949,9 +942,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 @@ -965,18 +966,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 2fe7c5f98b..e92a189f1b 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_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param 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))) (memory $0 1) (data (i32.const 1024) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") @@ -929,13 +929,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 @@ -949,9 +942,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 @@ -968,17 +969,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 17cde00d78..11ddfde728 100644 --- a/tests/compiler/rc/optimize.optimized.wat +++ b/tests/compiler/rc/optimize.optimized.wat @@ -1,12 +1,13 @@ (module (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_none (func (param i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $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))) (memory $0 1) (data (i32.const 1024) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s") @@ -36,7 +37,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)) @@ -741,18 +742,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 @@ -760,7 +829,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) @@ -798,10 +871,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 @@ -811,9 +959,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 @@ -821,13 +992,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 @@ -836,24 +1008,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 @@ -862,7 +1050,7 @@ end end local.get $0 - local.get $2 + local.get $3 i32.const 16 i32.shl memory.size @@ -870,8 +1058,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 @@ -883,11 +1072,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 @@ -897,79 +1086,28 @@ 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 ) (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 @@ -990,11 +1128,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 @@ -1117,6 +1251,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 bba71a6ad7..ef7b216752 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) @@ -1091,6 +1092,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 5d952dae01..bd2a910f04 100644 --- a/tests/compiler/rc/ternary-mismatch.optimized.wat +++ b/tests/compiler/rc/ternary-mismatch.optimized.wat @@ -2,10 +2,10 @@ (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param 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))) (memory $0 1) (data (i32.const 1024) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") @@ -931,17 +931,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 @@ -964,11 +961,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 e786c45d4f..299501c546 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -1185,14 +1185,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) @@ -1310,10 +1302,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 @@ -2261,7 +2261,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 @@ -2317,9 +2321,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 @@ -2368,19 +2375,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 @@ -2393,35 +2405,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 @@ -2453,7 +2468,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 @@ -2508,7 +2523,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 d8e26b16c3..13e29915e6 100644 --- a/tests/compiler/retain-release-sanity.optimized.wat +++ b/tests/compiler/retain-release-sanity.optimized.wat @@ -1,9 +1,9 @@ (module (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_none (func (param 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))) @@ -1046,14 +1046,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 @@ -1669,14 +1661,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) @@ -1708,16 +1692,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 @@ -1727,9 +1719,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 @@ -1757,9 +1752,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 @@ -1773,9 +1771,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 @@ -1838,9 +1839,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 @@ -1854,9 +1858,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 @@ -1892,9 +1899,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 @@ -1908,9 +1918,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 @@ -1950,14 +1963,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 @@ -1965,7 +1978,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 @@ -1999,16 +2012,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 @@ -2242,9 +2261,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/retain-return.optimized.wat b/tests/compiler/retain-return.optimized.wat index 71cd498d5a..7ba2cc8a70 100644 --- a/tests/compiler/retain-return.optimized.wat +++ b/tests/compiler/retain-return.optimized.wat @@ -938,16 +938,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 @@ -969,15 +966,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 661c45fba2..9203a97b41 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))) @@ -1045,14 +1045,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 @@ -1260,20 +1252,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 @@ -1289,10 +1277,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 @@ -1302,8 +1293,8 @@ call $~lib/builtins/abort unreachable end - local.get $1 local.get $2 + local.get $1 i32.const 2 i32.shl i32.add @@ -1315,18 +1306,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 @@ -1340,9 +1337,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 @@ -1401,16 +1401,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 @@ -1766,9 +1772,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 e786053e2f..fa30ba92e5 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))) (memory $0 1) @@ -1070,14 +1070,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) @@ -1129,16 +1121,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 @@ -1153,6 +1151,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 @@ -1435,22 +1451,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 @@ -1474,22 +1481,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 @@ -1520,10 +1518,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 704f2e5f94..524494194b 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))) @@ -1403,14 +1403,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) (param $2 i32) (local $3 i32) (local $4 i64) @@ -1639,9 +1631,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 @@ -1666,12 +1661,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 @@ -1715,9 +1713,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 @@ -1900,35 +1901,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 @@ -2916,14 +2922,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) @@ -4313,6 +4311,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 @@ -4322,7 +4321,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 @@ -4563,27 +4564,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 @@ -4597,7 +4597,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 @@ -4612,20 +4612,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 @@ -4633,13 +4633,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) @@ -4843,6 +4843,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 @@ -4852,7 +4853,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 @@ -5093,27 +5096,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 @@ -5127,7 +5129,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 @@ -5142,20 +5144,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 @@ -5163,13 +5165,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) @@ -5394,6 +5396,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 @@ -5403,7 +5406,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 @@ -6011,89 +6016,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 @@ -6384,9 +6306,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 @@ -6400,9 +6325,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 @@ -6438,9 +6366,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 @@ -6480,14 +6411,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) @@ -6601,18 +6524,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 @@ -6622,7 +6552,7 @@ i32.const -1 return end - local.get $3 + local.get $2 i32.eqz if local.get $0 @@ -6634,10 +6564,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 @@ -6678,10 +6608,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 @@ -6802,9 +6740,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 @@ -6831,12 +6772,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 @@ -6900,16 +6844,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 @@ -6919,9 +6871,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 @@ -6942,13 +6897,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 @@ -7004,9 +7040,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 @@ -7055,7 +7094,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 @@ -7065,8 +7108,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 @@ -7248,7 +7296,7 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $1 + local.tee $2 if i32.const 0 local.get $0 @@ -7257,24 +7305,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) @@ -7353,7 +7406,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 @@ -7363,8 +7420,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 @@ -7466,16 +7528,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) @@ -7532,7 +7599,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 @@ -7542,8 +7613,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 @@ -8673,9 +8749,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 @@ -8704,7 +8783,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 @@ -8714,8 +8797,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 @@ -8843,7 +8931,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 @@ -9027,7 +9119,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 @@ -9247,7 +9343,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 @@ -9257,8 +9357,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 @@ -9396,7 +9501,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 @@ -9406,8 +9515,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 @@ -9644,8 +9758,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 @@ -9656,8 +9775,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 @@ -9672,7 +9796,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 @@ -9682,8 +9810,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 @@ -9761,36 +9894,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 @@ -9824,117 +10032,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 @@ -9943,7 +10100,7 @@ i32.shl i32.add local.get $0 - local.get $7 + local.get $6 i32.const 3 i32.shl i32.add @@ -9952,38 +10109,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 @@ -9997,13 +10154,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 ) @@ -10064,7 +10221,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 @@ -10253,7 +10414,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 @@ -10263,8 +10428,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 @@ -10408,7 +10578,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 @@ -10591,7 +10765,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 @@ -10777,7 +10955,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 @@ -10942,27 +11124,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 @@ -10980,8 +11168,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 @@ -11001,7 +11189,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) @@ -11046,16 +11234,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 @@ -11161,8 +11355,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) @@ -11204,55 +11398,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 @@ -11267,7 +11471,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 @@ -11275,20 +11479,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 @@ -11299,20 +11503,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 @@ -11323,20 +11527,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 @@ -11347,20 +11551,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 @@ -11371,20 +11575,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 @@ -11395,17 +11599,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 @@ -11413,20 +11617,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 @@ -11438,20 +11642,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 @@ -11463,20 +11667,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 @@ -11488,20 +11692,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 @@ -11513,20 +11717,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 @@ -11538,17 +11742,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 @@ -11813,20 +12017,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 @@ -11836,15 +12040,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 @@ -11869,7 +12073,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=12 i32.const 3 i32.ne @@ -11881,14 +12085,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 @@ -11903,7 +12107,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -11916,7 +12120,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -11929,7 +12133,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -11942,19 +12146,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 @@ -11968,7 +12172,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.load offset=12 i32.const 2 i32.ne @@ -11980,7 +12184,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.load offset=12 i32.const 5 i32.ne @@ -11992,7 +12196,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -12005,7 +12209,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -12018,7 +12222,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -12031,7 +12235,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -12044,7 +12248,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -12057,10 +12261,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 @@ -12078,7 +12282,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 @@ -12088,13 +12292,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 @@ -12106,7 +12310,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.load offset=12 if i32.const 0 @@ -12116,14 +12320,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 @@ -12135,14 +12339,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 @@ -12168,14 +12372,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 @@ -12193,22 +12397,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 @@ -12226,21 +12429,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 @@ -12258,21 +12461,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 @@ -12290,21 +12493,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 @@ -12322,21 +12525,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 @@ -12354,21 +12557,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 @@ -12386,21 +12589,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 @@ -12418,21 +12621,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 @@ -12450,21 +12653,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 @@ -12482,10 +12685,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 @@ -12497,7 +12700,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 @@ -12509,55 +12712,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 @@ -13137,34 +13340,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 @@ -13172,17 +13375,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 @@ -13199,34 +13402,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 @@ -13234,17 +13437,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 @@ -13255,16 +13458,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 @@ -13276,9 +13479,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 @@ -13290,7 +13493,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 @@ -13302,7 +13507,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 @@ -13314,9 +13521,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 @@ -13328,9 +13535,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 @@ -13342,9 +13549,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 @@ -13356,9 +13563,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 @@ -13370,9 +13577,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 @@ -13384,9 +13591,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 @@ -13397,7 +13604,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 @@ -13406,7 +13613,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 @@ -13415,36 +13622,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 @@ -13460,7 +13667,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 @@ -13471,43 +13678,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 @@ -13576,7 +13783,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 @@ -13586,18 +13793,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 @@ -13609,14 +13816,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 @@ -13634,21 +13841,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 @@ -13660,14 +13867,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 @@ -13685,20 +13892,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 @@ -13710,14 +13917,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 @@ -13735,20 +13942,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 @@ -13760,14 +13967,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 @@ -13785,20 +13992,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 @@ -13810,14 +14017,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 @@ -13835,20 +14042,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 @@ -13860,14 +14067,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 @@ -13885,20 +14092,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 @@ -13910,14 +14117,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 @@ -13935,20 +14142,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 @@ -13960,14 +14167,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 @@ -13985,20 +14192,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 @@ -14010,14 +14217,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 @@ -14035,20 +14242,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 @@ -14060,7 +14267,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 5 i32.const 2 i32.const 3 @@ -14085,20 +14292,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 @@ -14110,14 +14317,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 @@ -14135,20 +14342,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 @@ -14160,14 +14367,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 @@ -14185,20 +14392,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 @@ -14210,14 +14417,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 @@ -14235,21 +14442,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 @@ -14268,7 +14474,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 @@ -14286,10 +14492,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 @@ -14299,7 +14505,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.load offset=12 if i32.const 0 @@ -14315,37 +14521,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 @@ -14357,10 +14563,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 @@ -14372,10 +14578,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 @@ -14387,7 +14593,7 @@ call $~lib/builtins/abort unreachable end - local.get $25 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -14399,10 +14605,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 @@ -14414,10 +14620,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 @@ -14429,10 +14635,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 @@ -14450,22 +14656,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 @@ -14477,11 +14683,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 @@ -14502,7 +14708,7 @@ call $~lib/builtins/abort unreachable end - local.get $28 + local.get $41 i32.load offset=12 i32.const 2 i32.ne @@ -14514,10 +14720,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 @@ -14526,11 +14732,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 @@ -14553,106 +14759,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 @@ -15133,19 +15339,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 @@ -15166,62 +15372,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 @@ -15233,7 +15439,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 @@ -15344,7 +15550,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 @@ -15771,22 +15977,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 @@ -15803,22 +16010,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 @@ -15835,23 +16043,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 @@ -15869,21 +16077,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 @@ -15901,62 +16109,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 @@ -15968,16 +16176,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 @@ -15989,10 +16197,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 @@ -16004,10 +16212,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 @@ -16019,10 +16227,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 @@ -16034,10 +16242,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 @@ -16049,10 +16257,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 @@ -16064,72 +16272,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 @@ -16146,85 +16436,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 @@ -16237,16 +16527,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 @@ -16258,111 +16548,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 @@ -16370,15 +16595,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 @@ -16396,10 +16621,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 @@ -16417,10 +16642,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 @@ -16438,10 +16663,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 @@ -16459,15 +16684,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 @@ -16485,10 +16710,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 @@ -16506,22 +16731,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 @@ -16539,19 +16764,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 @@ -16563,37 +16788,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 @@ -16601,29 +16826,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 @@ -16639,11 +16864,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 @@ -16656,11 +16881,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 @@ -16673,11 +16898,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 @@ -16696,15 +16921,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 @@ -16722,15 +16947,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 @@ -16748,15 +16973,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 @@ -16774,15 +16999,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 @@ -16800,12 +17025,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 @@ -16823,12 +17048,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 @@ -16846,9 +17071,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 @@ -16856,7 +17081,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 @@ -16864,15 +17089,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 @@ -16890,9 +17115,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 @@ -16900,7 +17125,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 @@ -16908,15 +17133,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 @@ -16934,7 +17159,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 @@ -16942,7 +17167,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 @@ -16951,17 +17176,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 @@ -16973,50 +17198,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 @@ -17026,7 +17251,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 @@ -17060,9 +17285,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 @@ -17075,16 +17300,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 @@ -17094,10 +17319,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 @@ -17107,7 +17332,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 @@ -17141,17 +17366,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 @@ -17164,21 +17389,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 @@ -17189,14 +17414,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 @@ -17206,9 +17431,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 @@ -17216,7 +17441,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 @@ -17224,9 +17449,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 @@ -17236,33 +17461,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) @@ -17273,9 +17498,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 @@ -17302,12 +17530,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 @@ -17654,9 +17885,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 @@ -17683,9 +17917,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 @@ -18606,6 +18843,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 @@ -18615,7 +18853,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 @@ -20050,7 +20290,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 871090b217..8aa69b6183 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))) @@ -1032,14 +1032,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 @@ -1449,6 +1441,7 @@ select end local.set $1 + call $~lib/rt/tlsf/maybeInitialize local.get $2 i32.const 0 i32.lt_s @@ -1480,7 +1473,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 @@ -1497,9 +1492,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 @@ -1525,12 +1523,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 @@ -1569,9 +1570,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 @@ -1804,20 +1808,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 @@ -1837,9 +1850,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 @@ -1852,9 +1868,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 5076b6a957..eea772314f 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -1,7 +1,7 @@ (module (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_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_none (func)) (type $i32_=>_none (func (param i32))) @@ -1040,14 +1040,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) @@ -1104,9 +1096,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 @@ -1119,9 +1114,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 @@ -1196,9 +1194,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 @@ -1260,13 +1261,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 @@ -1819,9 +1813,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 @@ -1859,7 +1856,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 @@ -3380,7 +3380,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 67c9dd1483..40e319fa88 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -1042,14 +1042,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) @@ -1281,22 +1273,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 @@ -1348,7 +1336,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 @@ -1374,49 +1365,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 @@ -1432,10 +1424,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 @@ -1443,13 +1435,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 @@ -1475,7 +1467,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 @@ -1490,15 +1482,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 @@ -1593,7 +1590,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 @@ -1608,6 +1608,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) @@ -2039,128 +2111,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 @@ -2185,12 +2147,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 @@ -2326,9 +2291,12 @@ ) (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/tlsf/allocateBlock + i32.const 16 + i32.add call $~lib/rt/pure/__retain local.tee $0 i32.const 16 @@ -2394,49 +2362,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 @@ -2452,10 +2421,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 @@ -2463,13 +2432,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 @@ -2495,7 +2464,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 @@ -2510,17 +2479,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 @@ -2597,7 +2568,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 @@ -2605,7 +2576,7 @@ i32.const 1 i32.add i32.store offset=16 - local.get $5 + local.get $4 local.get $1 i32.const 3 i32.shl @@ -2625,7 +2596,7 @@ local.get $1 local.get $0 i32.load - local.get $4 + local.get $5 local.get $0 i32.load offset=4 i32.and @@ -2638,7 +2609,7 @@ local.get $2 local.get $1 i32.store - local.get $5 + local.get $4 call $~lib/rt/pure/__release end local.get $0 @@ -2953,7 +2924,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 @@ -3049,32 +3023,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 @@ -3082,8 +3059,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 @@ -3093,9 +3070,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 @@ -3104,8 +3081,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 @@ -3116,10 +3093,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 @@ -3135,14 +3112,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 @@ -3155,9 +3132,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 @@ -3165,8 +3142,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 @@ -3177,10 +3154,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 @@ -3196,9 +3173,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 @@ -3207,8 +3184,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 @@ -3219,10 +3196,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 @@ -3238,14 +3215,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 @@ -3257,46 +3234,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 @@ -3307,18 +3328,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 @@ -3329,7 +3350,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $7 i32.const 20 i32.sub @@ -3343,27 +3364,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 @@ -3375,7 +3396,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -3388,9 +3409,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 @@ -3398,8 +3419,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 @@ -3410,10 +3431,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 @@ -3429,11 +3450,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 @@ -3443,14 +3464,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 @@ -3463,9 +3484,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 @@ -3473,8 +3494,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 @@ -3484,9 +3505,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 24 i32.shl i32.const 24 @@ -3495,8 +3516,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 @@ -3507,11 +3528,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 @@ -3521,14 +3542,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 @@ -3540,9 +3561,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 @@ -3552,15 +3573,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) @@ -3569,7 +3590,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 @@ -3595,49 +3619,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 @@ -3653,10 +3678,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 @@ -3664,13 +3689,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 @@ -3696,7 +3721,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 @@ -3711,13 +3736,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 @@ -3810,7 +3840,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 @@ -3825,39 +3858,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 @@ -3868,75 +3893,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) @@ -3959,49 +3951,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 @@ -4017,10 +4010,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 @@ -4028,13 +4021,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 @@ -4060,7 +4053,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 @@ -4075,15 +4068,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 @@ -4160,7 +4155,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 @@ -4168,7 +4163,7 @@ i32.const 1 i32.add i32.store offset=16 - local.get $5 + local.get $4 local.get $1 i32.const 3 i32.shl @@ -4188,7 +4183,7 @@ local.get $1 local.get $0 i32.load - local.get $4 + local.get $5 local.get $0 i32.load offset=4 i32.and @@ -4201,7 +4196,7 @@ local.get $2 local.get $1 i32.store - local.get $5 + local.get $4 call $~lib/rt/pure/__release end local.get $0 @@ -4214,7 +4209,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 @@ -4277,39 +4275,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 @@ -4319,17 +4320,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 @@ -4340,10 +4341,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 @@ -4357,14 +4358,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 @@ -4377,16 +4378,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 @@ -4397,10 +4398,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 @@ -4414,17 +4415,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 @@ -4435,10 +4436,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 @@ -4452,14 +4453,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 @@ -4471,46 +4472,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 @@ -4521,18 +4566,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 @@ -4543,7 +4588,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $7 i32.const 20 i32.sub @@ -4557,27 +4602,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 @@ -4589,7 +4634,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -4602,16 +4647,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 @@ -4622,10 +4667,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 @@ -4639,11 +4684,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 @@ -4653,14 +4698,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 @@ -4673,16 +4718,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 @@ -4692,17 +4737,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 @@ -4713,11 +4758,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 @@ -4727,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|8 end end - local.get $0 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -4746,9 +4791,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 @@ -4758,15 +4803,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) @@ -5095,90 +5140,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 @@ -5189,78 +5176,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) @@ -5605,32 +5609,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 @@ -5638,8 +5645,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 @@ -5649,9 +5656,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 @@ -5660,8 +5667,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 @@ -5672,10 +5679,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 @@ -5691,14 +5698,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 @@ -5711,9 +5718,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 @@ -5721,8 +5728,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 @@ -5733,10 +5740,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 @@ -5752,9 +5759,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 @@ -5763,8 +5770,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 @@ -5775,10 +5782,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 @@ -5794,14 +5801,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 @@ -5813,46 +5820,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 @@ -5863,20 +5914,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 @@ -5887,7 +5938,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $7 i32.const 20 i32.sub @@ -5901,27 +5952,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 @@ -5933,7 +5984,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -5946,9 +5997,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 @@ -5956,8 +6007,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 @@ -5968,10 +6019,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 @@ -5987,11 +6038,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 @@ -6001,14 +6052,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 @@ -6021,9 +6072,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 @@ -6031,8 +6082,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 @@ -6042,9 +6093,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 @@ -6053,8 +6104,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 @@ -6065,11 +6116,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 @@ -6079,14 +6130,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 @@ -6098,9 +6149,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 @@ -6110,15 +6161,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) @@ -6383,40 +6434,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 @@ -6427,78 +6470,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) @@ -6839,39 +6849,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 @@ -6881,17 +6894,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 @@ -6902,10 +6915,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 @@ -6919,14 +6932,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 @@ -6939,16 +6952,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 @@ -6959,10 +6972,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 @@ -6976,17 +6989,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 @@ -6997,10 +7010,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 @@ -7014,14 +7027,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 @@ -7033,46 +7046,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 @@ -7083,20 +7140,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 @@ -7107,7 +7164,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $7 i32.const 20 i32.sub @@ -7121,27 +7178,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 @@ -7153,7 +7210,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -7166,16 +7223,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 @@ -7186,10 +7243,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 @@ -7203,11 +7260,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 @@ -7217,14 +7274,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 @@ -7237,16 +7294,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 @@ -7256,17 +7313,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 @@ -7277,11 +7334,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 @@ -7291,14 +7348,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 @@ -7310,9 +7367,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 @@ -7322,15 +7379,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) @@ -7882,40 +7939,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 @@ -7926,78 +7975,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) @@ -8008,37 +8024,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 @@ -8048,15 +8067,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 @@ -8067,10 +8086,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 @@ -8082,14 +8101,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 @@ -8102,14 +8121,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 @@ -8120,10 +8139,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 @@ -8135,15 +8154,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 @@ -8154,10 +8173,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 @@ -8169,14 +8188,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 @@ -8188,54 +8207,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 @@ -8246,7 +8309,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $7 i32.const 20 i32.sub @@ -8260,27 +8323,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 @@ -8292,7 +8355,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -8305,14 +8368,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 @@ -8323,10 +8386,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 @@ -8338,11 +8401,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 @@ -8352,14 +8415,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 @@ -8372,14 +8435,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 @@ -8389,15 +8452,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 @@ -8408,11 +8471,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 @@ -8422,14 +8485,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 @@ -8441,9 +8504,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 @@ -8453,15 +8516,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) @@ -8827,90 +8890,32 @@ local.get $0 i32.load offset=8 ) - (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 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 3 - call $~lib/array/ensureSize - local.get $0 - local.get $3 - i32.store offset=12 - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - i64.store - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - local.get $0 - i32.load offset=12 - drop - local.get $0 - local.get $1 - i32.const 3 - call $~lib/array/ensureSize - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/map/Map#keys (param $0 i32) (result i32) - (local $1 i32) - (local $2 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 21 - 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 @@ -8921,78 +8926,95 @@ 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 + 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 - 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 + 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 3 + call $~lib/array/ensureSize + local.get $0 + local.get $3 + i32.store offset=12 end local.get $0 + i32.load offset=4 local.get $1 - call $~lib/array/Array#set:length + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=12 + drop + local.get $0 + local.get $1 + i32.const 3 + call $~lib/array/ensureSize local.get $0 + local.get $1 + i32.store offset=12 ) (func $~lib/map/Map#values (param $0 i32) (result i32) (local $1 i32) @@ -9425,45 +9447,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 @@ -9473,16 +9499,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 @@ -9493,10 +9519,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 @@ -9509,14 +9535,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 @@ -9529,14 +9555,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 @@ -9547,10 +9573,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 @@ -9563,16 +9589,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 @@ -9583,10 +9609,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 @@ -9599,14 +9625,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 @@ -9618,54 +9644,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 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 @@ -9676,7 +9746,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 local.get $4 i32.const 20 i32.sub @@ -9691,12 +9761,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 @@ -9704,14 +9774,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 @@ -9723,7 +9793,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -9736,14 +9806,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 @@ -9754,10 +9824,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 @@ -9770,11 +9840,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 @@ -9784,14 +9854,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 @@ -9804,14 +9874,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 @@ -9821,16 +9891,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 @@ -9841,11 +9911,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 @@ -9855,14 +9925,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 @@ -9874,9 +9944,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 @@ -9888,49 +9958,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 @@ -9941,119 +10003,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 @@ -10063,16 +10096,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 @@ -10083,10 +10116,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 @@ -10099,14 +10132,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 @@ -10119,14 +10152,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 @@ -10137,10 +10170,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 @@ -10153,16 +10186,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 @@ -10173,10 +10206,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 @@ -10189,14 +10222,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 @@ -10208,54 +10241,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 @@ -10266,7 +10343,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 local.get $4 i32.const 20 i32.sub @@ -10281,12 +10358,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 @@ -10294,14 +10371,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 @@ -10313,7 +10390,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -10326,14 +10403,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 @@ -10344,10 +10421,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 @@ -10360,11 +10437,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 @@ -10374,14 +10451,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 @@ -10394,14 +10471,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 @@ -10411,16 +10488,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 @@ -10431,11 +10508,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 @@ -10445,14 +10522,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 @@ -10464,9 +10541,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 @@ -10478,13 +10555,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) @@ -10788,41 +10865,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 @@ -10833,48 +10901,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 @@ -10886,7 +10974,7 @@ if local.get $3 f32.load - local.set $4 + local.set $6 local.get $1 local.get $0 i32.load offset=12 @@ -10920,17 +11008,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 @@ -11239,9 +11327,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 @@ -11430,9 +11521,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 @@ -12020,41 +12114,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 @@ -12065,48 +12150,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 @@ -12118,7 +12223,7 @@ if local.get $3 f64.load - local.set $4 + local.set $6 local.get $1 local.get $0 i32.load offset=12 @@ -12152,17 +12257,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 @@ -12507,9 +12612,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 @@ -12698,9 +12806,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 b23e9028df..6e20d3f0b2 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))) @@ -460,22 +457,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 @@ -492,13 +473,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 @@ -817,13 +791,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) @@ -1847,13 +1814,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) @@ -2433,13 +2393,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) @@ -2981,14 +2934,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) @@ -3225,13 +3170,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 @@ -3248,13 +3186,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) @@ -4162,13 +4093,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) @@ -5128,13 +5052,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 @@ -5151,13 +5068,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) @@ -5471,13 +5381,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 @@ -5494,13 +5397,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) @@ -5671,14 +5567,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) @@ -5784,14 +5672,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 @@ -5808,13 +5688,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) @@ -6189,13 +6062,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 @@ -6212,13 +6078,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) @@ -6577,13 +6436,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 @@ -6602,14 +6454,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 @@ -6628,14 +6472,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) @@ -7065,14 +6901,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) @@ -8317,14 +8145,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 @@ -8729,14 +8549,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) @@ -8976,14 +8788,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) @@ -9587,13 +9391,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) @@ -9759,13 +9556,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 @@ -9782,13 +9572,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) @@ -10416,13 +10199,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) @@ -10607,13 +10383,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) @@ -11327,8 +11096,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 @@ -11340,8 +11111,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 @@ -11353,8 +11126,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 @@ -11366,8 +11141,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 @@ -11379,8 +11156,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 @@ -11392,8 +11171,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 @@ -11405,8 +11186,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 @@ -11418,8 +11201,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 @@ -11431,8 +11216,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 @@ -11444,8 +11231,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 @@ -11457,8 +11246,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 @@ -11470,8 +11261,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 @@ -11483,8 +11276,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 @@ -11496,8 +11291,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 @@ -11509,8 +11306,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 @@ -11522,8 +11321,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 @@ -11535,8 +11336,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 @@ -11548,8 +11351,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 @@ -11561,8 +11366,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 @@ -11574,8 +11381,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 @@ -11587,8 +11396,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 @@ -11600,8 +11411,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 @@ -11613,8 +11426,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 @@ -11626,8 +11441,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 @@ -11639,8 +11456,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 @@ -11652,8 +11471,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 @@ -11665,8 +11486,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 @@ -11678,8 +11501,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 @@ -11691,8 +11516,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 @@ -11704,8 +11531,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 @@ -11717,8 +11546,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 @@ -11730,8 +11561,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 @@ -11743,8 +11576,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 @@ -11756,8 +11591,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 @@ -11769,8 +11606,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 @@ -11782,8 +11621,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 @@ -11795,8 +11636,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 @@ -11808,8 +11651,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 @@ -11821,8 +11666,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 @@ -11834,8 +11681,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 @@ -11847,8 +11696,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 @@ -11860,8 +11711,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 @@ -11873,8 +11726,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 @@ -11886,8 +11741,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 @@ -11899,8 +11756,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 @@ -11912,8 +11771,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 @@ -11925,8 +11786,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 @@ -11938,8 +11801,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 @@ -11951,8 +11816,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 @@ -11964,8 +11831,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 @@ -11977,8 +11846,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 @@ -11990,8 +11861,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 @@ -12003,8 +11876,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 @@ -12016,8 +11891,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 @@ -12029,8 +11906,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 @@ -12042,8 +11921,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 @@ -12055,8 +11936,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 @@ -12068,8 +11951,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 @@ -12283,9 +12168,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 @@ -12297,7 +12183,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 @@ -12307,9 +12194,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 @@ -12319,9 +12207,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 @@ -12333,7 +12222,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 @@ -12345,7 +12235,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 @@ -12355,9 +12246,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 @@ -12369,7 +12261,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 @@ -12381,7 +12274,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 @@ -12391,9 +12285,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 @@ -12405,7 +12300,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 @@ -12415,9 +12311,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 @@ -12429,7 +12326,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 @@ -12439,9 +12337,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 @@ -12453,7 +12352,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 @@ -12463,9 +12363,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 @@ -12477,7 +12378,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 @@ -12748,9 +12650,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 @@ -12761,9 +12664,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 @@ -12774,9 +12678,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 @@ -12787,9 +12692,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 @@ -12800,9 +12706,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 @@ -12813,9 +12720,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 @@ -12826,9 +12734,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 @@ -12839,9 +12748,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 @@ -12852,9 +12762,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 @@ -12865,9 +12776,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 @@ -12878,9 +12790,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 @@ -12891,9 +12804,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 @@ -12904,9 +12818,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 @@ -12917,9 +12832,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 @@ -12930,9 +12846,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 @@ -12943,9 +12860,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 @@ -12956,9 +12874,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 @@ -12969,9 +12888,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 @@ -12982,9 +12902,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 @@ -12995,9 +12916,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 @@ -13008,9 +12930,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 @@ -13775,9 +13698,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 @@ -13788,9 +13712,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 @@ -13801,9 +13726,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 @@ -13814,9 +13740,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 @@ -13827,9 +13754,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 @@ -13840,9 +13768,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 @@ -13853,9 +13782,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 @@ -13866,9 +13796,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 @@ -13879,9 +13810,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 @@ -13892,9 +13824,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 @@ -13905,9 +13838,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 @@ -13918,9 +13852,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 @@ -13931,9 +13866,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 @@ -13944,9 +13880,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 @@ -13957,9 +13894,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 @@ -13970,9 +13908,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 @@ -13983,9 +13922,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 @@ -13996,9 +13936,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 @@ -14009,9 +13950,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 @@ -14022,9 +13964,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 @@ -14659,9 +14602,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 @@ -14672,9 +14616,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 @@ -14685,9 +14630,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 @@ -14698,9 +14644,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 @@ -14711,9 +14658,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 @@ -14724,9 +14672,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 @@ -14737,9 +14686,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 @@ -14750,9 +14700,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 @@ -14763,9 +14714,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 @@ -14776,9 +14728,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 @@ -14789,9 +14742,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 @@ -14802,9 +14756,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 @@ -14815,9 +14770,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 @@ -14828,9 +14784,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 @@ -14841,9 +14798,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 @@ -14854,9 +14812,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 @@ -14867,9 +14826,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 @@ -16065,9 +16025,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 @@ -16079,9 +16040,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 @@ -16093,9 +16055,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 @@ -16107,9 +16070,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 @@ -16121,9 +16085,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 @@ -16135,9 +16100,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 @@ -16149,9 +16115,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 @@ -16163,9 +16130,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 @@ -16177,9 +16145,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 @@ -16191,9 +16160,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 @@ -16205,9 +16175,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 @@ -16219,9 +16190,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 @@ -16233,9 +16205,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 @@ -16247,9 +16220,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 @@ -16261,9 +16235,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 @@ -16275,9 +16250,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 @@ -16289,9 +16265,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 @@ -16303,9 +16280,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 @@ -16317,9 +16295,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 @@ -16331,9 +16310,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 @@ -16345,9 +16325,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 @@ -16359,9 +16340,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 @@ -16373,9 +16355,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 @@ -16387,9 +16370,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 @@ -16401,9 +16385,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 @@ -16415,9 +16400,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 @@ -16429,9 +16415,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 @@ -16443,9 +16430,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 @@ -16457,9 +16445,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 @@ -16471,9 +16460,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 @@ -16485,9 +16475,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 @@ -16499,9 +16490,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 @@ -16513,9 +16505,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 @@ -16527,9 +16520,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 @@ -16541,9 +16535,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 @@ -16555,9 +16550,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 @@ -16569,9 +16565,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 @@ -16583,9 +16580,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 @@ -16856,9 +16854,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 @@ -16869,9 +16868,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 @@ -16882,9 +16882,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 @@ -16895,9 +16896,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 @@ -16908,9 +16910,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 @@ -16921,9 +16924,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 @@ -16934,9 +16938,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 @@ -16947,9 +16952,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 @@ -16960,9 +16966,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 @@ -16973,9 +16980,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 @@ -16986,9 +16994,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 @@ -16999,9 +17008,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 @@ -17012,9 +17022,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 @@ -17025,9 +17036,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 @@ -17038,9 +17050,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 @@ -17051,9 +17064,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 @@ -17064,9 +17078,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 @@ -17077,9 +17092,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 @@ -17090,9 +17106,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 @@ -17103,9 +17120,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 @@ -17775,9 +17793,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 @@ -17787,9 +17806,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 @@ -17799,9 +17819,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 @@ -17811,9 +17832,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 @@ -17823,9 +17845,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 @@ -17835,9 +17858,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 @@ -17847,9 +17871,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 @@ -17859,9 +17884,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 @@ -17871,9 +17897,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 @@ -17883,9 +17910,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 @@ -17897,7 +17925,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 @@ -17909,7 +17938,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 @@ -17921,7 +17951,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 @@ -17933,7 +17964,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 @@ -17945,7 +17977,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 @@ -17957,7 +17990,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 @@ -17969,7 +18003,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 @@ -17979,9 +18014,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 @@ -17991,9 +18027,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 @@ -18003,9 +18040,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 @@ -18015,9 +18053,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 @@ -18027,9 +18066,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 @@ -18039,9 +18079,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 @@ -18051,9 +18092,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 @@ -18063,9 +18105,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 @@ -18077,7 +18120,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 @@ -18089,7 +18133,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 @@ -18101,7 +18146,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 @@ -18113,7 +18159,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 @@ -18125,7 +18172,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 @@ -18137,7 +18185,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 @@ -18149,7 +18198,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 @@ -18159,9 +18209,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 @@ -18171,9 +18222,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 @@ -18183,9 +18235,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 @@ -18195,9 +18248,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 @@ -18207,9 +18261,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 @@ -18219,9 +18274,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 @@ -18231,9 +18287,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 @@ -18243,9 +18300,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 @@ -18257,7 +18315,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 @@ -18269,7 +18328,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 @@ -18281,7 +18341,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 @@ -18293,7 +18354,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 @@ -18305,7 +18367,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 @@ -18317,7 +18380,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 @@ -18329,7 +18393,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 @@ -18339,9 +18404,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 @@ -18351,9 +18417,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 @@ -18363,9 +18430,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 @@ -18375,9 +18443,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 @@ -18387,9 +18456,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 @@ -18399,9 +18469,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 @@ -18411,9 +18482,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 @@ -18423,9 +18495,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 @@ -20329,9 +20402,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 @@ -20342,9 +20416,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 @@ -20355,9 +20430,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 @@ -20368,9 +20444,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 @@ -20381,9 +20458,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 @@ -20394,9 +20472,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 @@ -20407,9 +20486,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 @@ -20420,9 +20500,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 @@ -20433,9 +20514,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 @@ -20446,9 +20528,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 @@ -20459,9 +20542,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 @@ -20472,9 +20556,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 @@ -20485,9 +20570,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 @@ -20498,9 +20584,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 @@ -20511,9 +20598,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 @@ -20524,9 +20612,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 @@ -20537,9 +20626,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 @@ -20550,9 +20640,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 @@ -20563,9 +20654,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 @@ -20576,9 +20668,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 @@ -20589,9 +20682,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 @@ -20602,9 +20696,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 @@ -20615,9 +20710,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 @@ -20628,9 +20724,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 @@ -20641,9 +20738,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 @@ -20654,9 +20752,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 @@ -20667,9 +20766,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 @@ -20680,9 +20780,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 @@ -20693,9 +20794,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 @@ -20706,9 +20808,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 @@ -20719,9 +20822,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 @@ -20732,9 +20836,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 @@ -20745,9 +20850,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 @@ -20758,9 +20864,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 @@ -20771,9 +20878,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 @@ -20784,9 +20892,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 @@ -20797,9 +20906,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 @@ -20810,9 +20920,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 @@ -20823,9 +20934,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 @@ -20836,9 +20948,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 @@ -20849,9 +20962,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 @@ -20862,9 +20976,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 @@ -20875,9 +20990,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 @@ -20888,9 +21004,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 @@ -20901,9 +21018,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 @@ -20914,9 +21032,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 @@ -20927,9 +21046,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 @@ -20940,9 +21060,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 @@ -20953,9 +21074,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 @@ -20966,9 +21088,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 @@ -20979,9 +21102,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 @@ -20992,9 +21116,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 @@ -21005,9 +21130,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 @@ -21018,9 +21144,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 @@ -21031,9 +21158,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 @@ -21044,9 +21172,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 @@ -21057,9 +21186,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 @@ -21070,9 +21200,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 @@ -21083,9 +21214,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 @@ -21096,9 +21228,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 @@ -21109,9 +21242,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 @@ -21122,9 +21256,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 @@ -21135,9 +21270,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 @@ -21148,9 +21284,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 @@ -21161,9 +21298,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 @@ -21174,9 +21312,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 @@ -21187,9 +21326,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 @@ -22149,9 +22289,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 @@ -22162,9 +22303,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 @@ -22175,9 +22317,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 @@ -22188,9 +22331,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 @@ -22201,9 +22345,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 @@ -22214,9 +22359,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 @@ -22227,9 +22373,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 @@ -22240,9 +22387,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 @@ -22253,9 +22401,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 @@ -22266,9 +22415,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 @@ -22279,9 +22429,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 @@ -22292,9 +22443,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 @@ -22305,9 +22457,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 @@ -22318,9 +22471,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 @@ -22331,9 +22485,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 @@ -22344,9 +22499,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 @@ -22357,9 +22513,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 @@ -22370,9 +22527,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 @@ -22383,9 +22541,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 @@ -22396,9 +22555,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 @@ -22409,9 +22569,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 @@ -22422,9 +22583,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 @@ -22435,9 +22597,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 @@ -22448,9 +22611,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 @@ -22708,9 +22872,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 @@ -22721,9 +22886,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 @@ -22734,9 +22900,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 @@ -22747,9 +22914,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 @@ -22760,9 +22928,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 @@ -22773,9 +22942,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 @@ -22786,9 +22956,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 @@ -22799,9 +22970,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 @@ -22812,9 +22984,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 @@ -22825,9 +22998,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 @@ -22838,9 +23012,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 @@ -22851,9 +23026,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 @@ -22864,9 +23040,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 @@ -22877,9 +23054,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 @@ -22890,9 +23068,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 @@ -22903,9 +23082,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 @@ -22916,9 +23096,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 @@ -23384,9 +23565,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 @@ -23397,9 +23579,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 @@ -23410,9 +23593,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 @@ -23423,9 +23607,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 @@ -23436,9 +23621,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 @@ -23449,9 +23635,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 @@ -23462,9 +23649,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 @@ -23475,9 +23663,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 @@ -23488,9 +23677,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 @@ -23501,9 +23691,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 @@ -23813,9 +24004,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 @@ -23825,9 +24017,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 @@ -23837,9 +24030,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 @@ -23849,9 +24043,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 @@ -23861,9 +24056,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 @@ -23873,9 +24069,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 @@ -23885,9 +24082,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 @@ -23897,9 +24095,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 @@ -23909,9 +24108,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 @@ -23921,9 +24121,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 @@ -23935,7 +24136,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 @@ -23947,7 +24149,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 @@ -23959,7 +24162,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 @@ -23971,7 +24175,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 @@ -23983,7 +24188,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 @@ -23995,7 +24201,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 @@ -24007,7 +24214,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 @@ -24017,9 +24225,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 @@ -24029,9 +24238,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 @@ -24041,9 +24251,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 @@ -24053,9 +24264,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 @@ -24065,9 +24277,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 @@ -24077,9 +24290,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 @@ -24089,9 +24303,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 @@ -24101,9 +24316,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 @@ -24115,9 +24331,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 @@ -24129,9 +24346,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 @@ -24143,9 +24361,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 @@ -24157,9 +24376,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 @@ -24171,9 +24391,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 @@ -24185,9 +24406,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 @@ -24199,9 +24421,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 @@ -24213,9 +24436,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 @@ -24227,9 +24451,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 @@ -24241,9 +24466,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 @@ -24255,9 +24481,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 @@ -24269,9 +24496,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 @@ -24283,9 +24511,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 @@ -24297,9 +24526,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 @@ -24311,9 +24541,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 @@ -24325,9 +24556,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 @@ -24339,9 +24571,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 @@ -24353,9 +24586,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 @@ -24367,9 +24601,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 @@ -24381,9 +24616,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 @@ -24395,9 +24631,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 @@ -24409,9 +24646,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 @@ -24423,9 +24661,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 @@ -24437,9 +24676,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 @@ -24451,9 +24691,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 @@ -24465,9 +24706,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 @@ -24479,9 +24721,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 @@ -24493,9 +24736,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 @@ -24507,9 +24751,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 @@ -24521,9 +24766,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 @@ -24535,9 +24781,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 @@ -24549,9 +24796,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 @@ -24563,9 +24811,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 @@ -24577,9 +24826,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 @@ -24591,9 +24841,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 @@ -24605,9 +24856,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 @@ -24619,9 +24871,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 @@ -24633,9 +24886,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 @@ -24647,9 +24901,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 @@ -24661,9 +24916,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 @@ -24675,9 +24931,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 @@ -24689,9 +24946,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 @@ -24703,9 +24961,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 @@ -24717,9 +24976,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 @@ -24731,9 +24991,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 @@ -24745,9 +25006,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 @@ -24759,9 +25021,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 @@ -24773,9 +25036,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 @@ -24787,9 +25051,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 @@ -24801,9 +25066,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 @@ -24815,9 +25081,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 @@ -24829,9 +25096,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 @@ -24843,9 +25111,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 @@ -24857,9 +25126,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 @@ -24871,9 +25141,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 @@ -24885,9 +25156,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 @@ -24899,9 +25171,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 @@ -24913,9 +25186,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 @@ -24927,9 +25201,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 @@ -24941,9 +25216,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 @@ -25188,8 +25464,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 @@ -25200,8 +25478,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 @@ -25212,8 +25492,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 @@ -25224,8 +25506,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 @@ -25236,8 +25520,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 @@ -25248,8 +25534,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 @@ -25260,8 +25548,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 @@ -25272,8 +25562,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 @@ -25284,8 +25576,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 @@ -25296,8 +25590,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 @@ -25308,8 +25604,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 @@ -25320,8 +25618,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 @@ -25332,8 +25632,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 @@ -25344,8 +25646,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 @@ -25356,8 +25660,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 @@ -25368,8 +25674,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 @@ -25614,9 +25922,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 @@ -25627,9 +25936,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 @@ -25640,9 +25950,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 @@ -25653,9 +25964,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 @@ -25666,9 +25978,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 @@ -25679,9 +25992,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 @@ -25692,9 +26006,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 @@ -25705,9 +26020,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 @@ -25718,9 +26034,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 @@ -25731,9 +26048,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 @@ -25744,9 +26062,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 @@ -25757,9 +26076,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 @@ -25770,9 +26090,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 @@ -25783,9 +26104,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 @@ -25796,9 +26118,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 @@ -25809,9 +26132,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 @@ -25822,9 +26146,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 @@ -25835,9 +26160,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 @@ -26082,9 +26408,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 @@ -26095,9 +26422,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 @@ -26108,9 +26436,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 @@ -26121,9 +26450,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 @@ -26134,9 +26464,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 @@ -26147,9 +26478,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 @@ -26160,9 +26492,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 @@ -26173,9 +26506,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 @@ -26186,9 +26520,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 @@ -26199,9 +26534,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 @@ -26212,9 +26548,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 @@ -26225,9 +26562,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 @@ -26238,9 +26576,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 @@ -26251,9 +26590,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 @@ -26264,9 +26604,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 @@ -26277,9 +26618,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 @@ -26290,9 +26632,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 @@ -26303,9 +26646,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 @@ -26316,9 +26660,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 @@ -26563,9 +26908,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 @@ -26576,9 +26922,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 @@ -26589,9 +26936,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 @@ -26602,9 +26950,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 @@ -26615,9 +26964,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 @@ -26628,9 +26978,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 @@ -26641,9 +26992,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 @@ -26654,9 +27006,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 @@ -26667,9 +27020,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 @@ -26680,9 +27034,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 @@ -26693,9 +27048,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 @@ -26706,9 +27062,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 @@ -26719,9 +27076,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 @@ -26732,9 +27090,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 @@ -26745,9 +27104,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 @@ -26758,9 +27118,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 @@ -26771,9 +27132,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 @@ -26784,9 +27146,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 @@ -27680,10 +28043,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 @@ -27694,9 +28057,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 @@ -27706,10 +28069,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 @@ -27719,10 +28082,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 @@ -27733,9 +28096,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 @@ -27745,10 +28108,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 @@ -27759,9 +28122,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 @@ -27771,10 +28134,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 @@ -27784,10 +28147,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 @@ -27797,10 +28160,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 @@ -27810,10 +28173,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 @@ -27823,10 +28186,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 @@ -27836,10 +28199,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 @@ -27849,10 +28212,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 @@ -27864,8 +28227,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 @@ -27875,10 +28238,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 @@ -27889,9 +28252,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 @@ -27901,10 +28264,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 @@ -27915,9 +28278,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 @@ -27928,9 +28291,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 @@ -27941,9 +28304,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 @@ -27954,9 +28317,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 @@ -27967,9 +28330,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 @@ -27980,9 +28343,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 @@ -27994,8 +28357,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 @@ -28006,9 +28369,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 @@ -28018,10 +28381,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 @@ -28032,9 +28395,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 @@ -28047,7 +28410,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 @@ -28058,9 +28421,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 @@ -28070,10 +28433,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 @@ -28084,9 +28447,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 @@ -28096,10 +28459,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 @@ -28109,10 +28472,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 @@ -28124,8 +28487,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 @@ -28135,10 +28498,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 @@ -28149,9 +28512,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 @@ -28161,10 +28524,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 @@ -28175,9 +28538,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 @@ -28187,10 +28550,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 @@ -28201,9 +28564,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 @@ -28213,10 +28576,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 @@ -28227,9 +28590,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 @@ -28239,10 +28602,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 @@ -28253,9 +28616,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 @@ -28265,10 +28628,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 @@ -28279,9 +28642,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 @@ -28292,9 +28655,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 @@ -28305,9 +28668,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 @@ -28317,10 +28680,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 @@ -28330,10 +28693,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 @@ -28343,10 +28706,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 @@ -28356,10 +28719,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 @@ -28371,8 +28734,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 @@ -28382,10 +28745,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 @@ -28395,10 +28758,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 @@ -28408,10 +28771,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 @@ -28421,10 +28784,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 @@ -28436,8 +28799,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 @@ -28447,10 +28810,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 @@ -28461,9 +28824,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 @@ -28474,9 +28837,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 @@ -28487,9 +28850,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 @@ -28501,8 +28864,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 @@ -28513,9 +28876,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 @@ -28525,10 +28888,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 @@ -28539,9 +28902,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 @@ -28551,10 +28914,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 @@ -29449,9 +29812,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 @@ -29461,10 +29824,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 @@ -29475,9 +29838,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 @@ -29488,9 +29851,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 @@ -29500,10 +29863,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 @@ -29514,9 +29877,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 @@ -29526,10 +29889,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 @@ -29540,9 +29903,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 @@ -29553,9 +29916,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 @@ -29566,9 +29929,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 @@ -29579,9 +29942,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 @@ -29592,9 +29955,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 @@ -29605,9 +29968,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 @@ -29618,9 +29981,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 @@ -29632,8 +29995,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 @@ -29644,9 +30007,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 @@ -29656,10 +30019,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 @@ -29670,9 +30033,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 @@ -29683,9 +30046,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 @@ -29695,10 +30058,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 @@ -29708,10 +30071,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 @@ -29721,10 +30084,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 @@ -29734,10 +30097,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 @@ -29747,10 +30110,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 @@ -29762,8 +30125,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 @@ -29773,10 +30136,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 @@ -29787,9 +30150,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 @@ -29800,9 +30163,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 @@ -29815,7 +30178,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 @@ -29825,10 +30188,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 @@ -29839,9 +30202,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 @@ -29851,10 +30214,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 @@ -29864,10 +30227,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 @@ -29878,9 +30241,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 @@ -29892,8 +30255,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 @@ -29904,9 +30267,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 @@ -29916,10 +30279,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 @@ -29929,10 +30292,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 @@ -29942,10 +30305,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 @@ -29956,9 +30319,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 @@ -29968,10 +30331,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 @@ -29982,9 +30345,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 @@ -29995,9 +30358,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 @@ -30008,9 +30371,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 @@ -30020,10 +30383,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 @@ -30034,9 +30397,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 @@ -30047,9 +30410,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 @@ -30059,10 +30422,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 @@ -30072,10 +30435,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 @@ -30085,10 +30448,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 @@ -30099,9 +30462,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 @@ -30112,9 +30475,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 @@ -30124,10 +30487,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 @@ -30139,8 +30502,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 @@ -30150,10 +30513,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 @@ -30163,10 +30526,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 @@ -30177,9 +30540,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 @@ -30190,9 +30553,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 @@ -30204,8 +30567,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 @@ -30216,9 +30579,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 @@ -30228,10 +30591,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 @@ -30241,10 +30604,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 @@ -30254,10 +30617,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 @@ -30269,8 +30632,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 @@ -30280,10 +30643,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 @@ -30294,9 +30657,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 @@ -30306,10 +30669,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 @@ -30320,9 +30683,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 @@ -32128,8 +32491,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 @@ -32141,8 +32506,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 @@ -32154,8 +32521,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 @@ -32167,8 +32536,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 @@ -32180,8 +32551,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 @@ -32193,8 +32566,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 @@ -32206,8 +32581,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 @@ -32219,8 +32596,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 @@ -32232,8 +32611,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 @@ -32245,8 +32626,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 @@ -32258,8 +32641,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 @@ -32271,8 +32656,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 @@ -32284,8 +32671,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 @@ -32297,8 +32686,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 @@ -32310,8 +32701,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 @@ -32323,8 +32716,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 @@ -32336,8 +32731,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 @@ -32349,8 +32746,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 @@ -32362,8 +32761,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 @@ -32375,8 +32776,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 @@ -32388,8 +32791,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 @@ -32401,8 +32806,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 @@ -32414,8 +32821,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 @@ -32427,8 +32836,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 @@ -32440,8 +32851,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 @@ -32453,8 +32866,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 @@ -32466,8 +32881,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 @@ -32479,8 +32896,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 @@ -32492,8 +32911,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 @@ -32505,8 +32926,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 @@ -32518,8 +32941,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 @@ -32531,8 +32956,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 @@ -32544,8 +32971,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 @@ -32557,8 +32986,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 @@ -32570,8 +33001,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 @@ -32583,8 +33016,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 @@ -32596,8 +33031,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 @@ -32609,8 +33046,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 @@ -32622,8 +33061,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 @@ -32635,8 +33076,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 @@ -32648,8 +33091,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 @@ -32661,8 +33106,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 @@ -32674,8 +33121,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 @@ -32687,8 +33136,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 @@ -32700,8 +33151,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 @@ -32713,8 +33166,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 @@ -32726,8 +33181,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 @@ -32739,8 +33196,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 @@ -32752,8 +33211,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 @@ -32765,8 +33226,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 @@ -32778,8 +33241,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 @@ -32791,8 +33256,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 @@ -32804,8 +33271,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 @@ -32817,8 +33286,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 @@ -32830,8 +33301,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 @@ -32843,8 +33316,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 @@ -32856,8 +33331,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 @@ -32869,8 +33346,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 @@ -32882,8 +33361,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 @@ -32895,8 +33376,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 @@ -32908,8 +33391,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 @@ -32921,8 +33406,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 @@ -32934,8 +33421,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 @@ -32947,8 +33436,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 @@ -32960,8 +33451,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 @@ -32973,8 +33466,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 @@ -32986,8 +33481,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 @@ -32999,8 +33496,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 @@ -33012,8 +33511,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 @@ -33025,8 +33526,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 @@ -33038,8 +33541,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 @@ -33051,8 +33556,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 @@ -33064,8 +33571,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 @@ -33077,8 +33586,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 @@ -33090,8 +33601,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 @@ -33103,8 +33616,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 @@ -35043,9 +35558,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 @@ -35057,9 +35573,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 @@ -35071,9 +35588,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 @@ -35085,9 +35603,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 @@ -35099,9 +35618,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 @@ -35113,9 +35633,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 @@ -35127,9 +35648,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 @@ -35141,9 +35663,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 @@ -35155,9 +35678,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 @@ -35169,9 +35693,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 @@ -35183,9 +35708,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 @@ -35197,9 +35723,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 @@ -35211,9 +35738,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 @@ -35225,9 +35753,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 @@ -35239,9 +35768,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 @@ -35253,9 +35783,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 @@ -35267,9 +35798,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 @@ -35281,9 +35813,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 @@ -35295,9 +35828,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 @@ -35309,9 +35843,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 @@ -35323,9 +35858,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 @@ -35337,9 +35873,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 @@ -35351,9 +35888,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 @@ -35365,9 +35903,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 @@ -35379,9 +35918,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 @@ -35393,9 +35933,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 @@ -35407,9 +35948,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 @@ -35421,9 +35963,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 @@ -35435,9 +35978,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 @@ -35449,9 +35993,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 @@ -35463,9 +36008,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 @@ -35477,9 +36023,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 @@ -35491,9 +36038,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 @@ -35505,9 +36053,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 @@ -35519,9 +36068,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 @@ -35533,9 +36083,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 @@ -35547,9 +36098,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 @@ -35561,9 +36113,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 @@ -35575,9 +36128,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 @@ -35589,9 +36143,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 @@ -35603,9 +36158,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 @@ -35617,9 +36173,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 @@ -35631,9 +36188,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 @@ -35645,9 +36203,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 @@ -35659,9 +36218,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 @@ -35673,9 +36233,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 @@ -35687,9 +36248,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 @@ -35701,9 +36263,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 @@ -35715,9 +36278,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 @@ -35729,9 +36293,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 @@ -35743,9 +36308,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 @@ -35757,9 +36323,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 @@ -35771,9 +36338,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 @@ -35785,9 +36353,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 @@ -35799,9 +36368,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 @@ -35813,9 +36383,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 @@ -35827,9 +36398,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 @@ -35841,9 +36413,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 @@ -35855,9 +36428,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 @@ -35869,9 +36443,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 @@ -35883,9 +36458,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 @@ -35897,9 +36473,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 @@ -35911,9 +36488,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 @@ -35925,9 +36503,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 @@ -35939,9 +36518,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 @@ -35953,9 +36533,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 @@ -35967,9 +36548,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 @@ -35981,9 +36563,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 @@ -35995,9 +36578,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 @@ -36009,9 +36593,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 @@ -36023,9 +36608,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 @@ -36037,9 +36623,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 @@ -36051,9 +36638,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 @@ -36065,9 +36653,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 @@ -36079,9 +36668,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 @@ -36093,9 +36683,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 @@ -36107,9 +36698,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 @@ -36121,9 +36713,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 @@ -36135,9 +36728,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 @@ -36149,9 +36743,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 @@ -36163,9 +36758,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 @@ -36177,9 +36773,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 @@ -36191,9 +36788,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 @@ -36205,9 +36803,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 @@ -36219,9 +36818,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 @@ -36233,9 +36833,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 @@ -36247,9 +36848,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 @@ -36261,9 +36863,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 @@ -36275,9 +36878,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 @@ -36289,9 +36893,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 @@ -36303,9 +36908,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 @@ -36317,9 +36923,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 @@ -36331,9 +36938,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 @@ -36345,9 +36953,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 @@ -36359,9 +36968,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 @@ -36373,9 +36983,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 @@ -36387,9 +36998,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 @@ -36401,9 +37013,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 @@ -36415,9 +37028,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 @@ -36429,9 +37043,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 @@ -36443,9 +37058,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 @@ -36457,9 +37073,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 @@ -36471,9 +37088,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 @@ -36485,9 +37103,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 @@ -36499,9 +37118,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 @@ -36513,9 +37133,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 @@ -36527,9 +37148,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 @@ -36541,9 +37163,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 @@ -36555,9 +37178,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 @@ -36569,9 +37193,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 @@ -36583,9 +37208,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 @@ -36597,9 +37223,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 @@ -36611,9 +37238,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 @@ -36625,9 +37253,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 @@ -36639,9 +37268,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 @@ -36653,9 +37283,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 @@ -36667,9 +37298,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 @@ -36681,9 +37313,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 @@ -36695,9 +37328,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 @@ -36709,9 +37343,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 @@ -36723,9 +37358,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 @@ -36737,9 +37373,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 @@ -36751,9 +37388,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 @@ -36765,9 +37403,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 @@ -36779,9 +37418,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 @@ -36793,9 +37433,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 @@ -36807,9 +37448,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 @@ -36821,9 +37463,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 @@ -36835,9 +37478,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 @@ -36849,9 +37493,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 @@ -36863,9 +37508,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 @@ -36877,9 +37523,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 @@ -36891,9 +37538,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 @@ -36905,9 +37553,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 @@ -36919,9 +37568,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 @@ -36933,9 +37583,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 @@ -36947,9 +37598,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 @@ -36961,9 +37613,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 @@ -36975,9 +37628,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 @@ -36989,9 +37643,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 @@ -37003,9 +37658,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 @@ -37017,9 +37673,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 @@ -37031,9 +37688,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 @@ -37045,9 +37703,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 @@ -37059,9 +37718,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 @@ -37073,9 +37733,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 @@ -37087,9 +37748,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 @@ -37101,9 +37763,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 @@ -37115,9 +37778,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 @@ -37129,9 +37793,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 @@ -37143,9 +37808,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 @@ -37157,9 +37823,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 @@ -37171,9 +37838,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 @@ -37185,9 +37853,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 @@ -37199,9 +37868,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 @@ -37213,9 +37883,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 @@ -37227,9 +37898,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 @@ -37241,9 +37913,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 @@ -37255,9 +37928,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 @@ -37269,9 +37943,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 @@ -37283,9 +37958,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 @@ -37297,9 +37973,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 @@ -37311,9 +37988,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 @@ -37325,9 +38003,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 @@ -37339,9 +38018,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 @@ -37353,9 +38033,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 @@ -37367,9 +38048,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 @@ -37381,9 +38063,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 @@ -37395,9 +38078,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 @@ -37409,9 +38093,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 @@ -37423,9 +38108,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 @@ -37437,9 +38123,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 @@ -37451,9 +38138,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 @@ -37465,9 +38153,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 @@ -37479,9 +38168,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 @@ -37493,9 +38183,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 @@ -37507,9 +38198,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 @@ -37521,9 +38213,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 @@ -37535,9 +38228,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 @@ -37549,9 +38243,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 @@ -37563,9 +38258,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 @@ -37577,9 +38273,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 @@ -37591,9 +38288,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 @@ -37605,9 +38303,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 @@ -37619,9 +38318,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 @@ -37633,9 +38333,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 @@ -37647,9 +38348,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 @@ -37661,9 +38363,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 @@ -37675,9 +38378,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 @@ -37689,9 +38393,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 @@ -37703,9 +38408,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 @@ -37717,9 +38423,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 @@ -37731,9 +38438,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 @@ -37745,9 +38453,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 @@ -37759,9 +38468,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 @@ -37773,9 +38483,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 @@ -37787,9 +38498,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 @@ -37801,9 +38513,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 @@ -37815,9 +38528,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 @@ -37829,9 +38543,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 @@ -37843,9 +38558,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 @@ -37857,9 +38573,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 @@ -37871,9 +38588,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 @@ -37885,9 +38603,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 @@ -37899,9 +38618,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 @@ -37913,9 +38633,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 @@ -37927,9 +38648,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 @@ -37941,9 +38663,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 @@ -37955,9 +38678,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 @@ -37969,9 +38693,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 @@ -37983,9 +38708,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 @@ -37997,9 +38723,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 @@ -38011,9 +38738,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 @@ -38025,9 +38753,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 @@ -38039,9 +38768,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 @@ -38053,9 +38783,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 @@ -38067,9 +38798,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 @@ -38081,9 +38813,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 @@ -38095,9 +38828,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 @@ -38109,9 +38843,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 @@ -38123,9 +38858,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 @@ -38137,9 +38873,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 @@ -38151,9 +38888,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 @@ -38165,9 +38903,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 @@ -38179,9 +38918,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 @@ -38193,9 +38933,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 @@ -38207,9 +38948,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 @@ -38221,9 +38963,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 @@ -39243,8 +39986,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 @@ -39256,8 +40001,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 @@ -39269,8 +40016,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 @@ -39282,8 +40031,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 @@ -39295,8 +40046,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 @@ -39308,8 +40061,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 @@ -39321,8 +40076,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 @@ -39334,8 +40091,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 @@ -39347,8 +40106,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 @@ -39360,8 +40121,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 @@ -39373,8 +40136,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 @@ -39386,8 +40151,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 @@ -39399,8 +40166,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 @@ -39412,8 +40181,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 @@ -39425,8 +40196,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 @@ -39438,8 +40211,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 @@ -39451,8 +40226,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 @@ -39464,8 +40241,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 @@ -39477,8 +40256,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 @@ -39490,8 +40271,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 @@ -39503,8 +40286,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 @@ -39516,8 +40301,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 @@ -39529,8 +40316,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 @@ -39542,8 +40331,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 @@ -39555,8 +40346,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 @@ -39568,8 +40361,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 @@ -39581,8 +40376,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 @@ -39594,8 +40391,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 @@ -39607,8 +40406,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 @@ -39620,8 +40421,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 @@ -39633,8 +40436,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 @@ -39646,8 +40451,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 @@ -39659,8 +40466,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 @@ -39672,8 +40481,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 @@ -39685,8 +40496,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 @@ -39698,8 +40511,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 @@ -39711,8 +40526,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 @@ -39724,8 +40541,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 @@ -39737,8 +40556,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 @@ -39750,8 +40571,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 @@ -39763,8 +40586,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 @@ -39776,8 +40601,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 @@ -39789,8 +40616,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 @@ -39802,8 +40631,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 @@ -39815,8 +40646,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 @@ -39828,8 +40661,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 @@ -39841,8 +40676,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 @@ -39854,8 +40691,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 @@ -39867,8 +40706,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 @@ -39880,8 +40721,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 @@ -39893,8 +40736,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 @@ -39906,8 +40751,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 @@ -39919,8 +40766,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 @@ -39932,8 +40781,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 @@ -39945,8 +40796,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 @@ -39958,8 +40811,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 @@ -39971,8 +40826,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 @@ -39984,8 +40841,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 @@ -39997,8 +40856,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 @@ -40010,8 +40871,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 @@ -40023,8 +40886,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 @@ -40036,8 +40901,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 @@ -40049,8 +40916,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 @@ -40062,8 +40931,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 @@ -40075,8 +40946,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 @@ -40088,8 +40961,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 @@ -40101,8 +40976,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 @@ -40114,8 +40991,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 @@ -40127,8 +41006,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 @@ -40140,8 +41021,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 @@ -40153,8 +41036,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 @@ -40166,8 +41051,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 @@ -40179,8 +41066,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 @@ -40192,8 +41081,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 @@ -40205,8 +41096,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 @@ -40218,8 +41111,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 @@ -40231,8 +41126,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 @@ -40244,8 +41141,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 @@ -40257,8 +41156,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 @@ -40270,8 +41171,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 @@ -40283,8 +41186,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 @@ -40296,8 +41201,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 @@ -40309,8 +41216,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 @@ -40322,8 +41231,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 @@ -40335,8 +41246,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 @@ -40348,8 +41261,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 @@ -40361,8 +41276,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 @@ -40374,8 +41291,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 @@ -40387,8 +41306,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 @@ -40400,8 +41321,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 @@ -40413,8 +41336,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 @@ -40426,8 +41351,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 @@ -40439,8 +41366,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 @@ -40452,8 +41381,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 @@ -40465,8 +41396,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 @@ -40478,8 +41411,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 @@ -40491,8 +41426,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 @@ -40504,8 +41441,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 @@ -40517,8 +41456,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 @@ -40530,8 +41471,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 @@ -40543,8 +41486,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 @@ -40556,8 +41501,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 @@ -40569,8 +41516,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 @@ -40582,8 +41531,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 @@ -40595,8 +41546,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 @@ -40608,8 +41561,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 @@ -40621,8 +41576,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 @@ -40634,8 +41591,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 @@ -40647,8 +41606,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 @@ -40660,8 +41621,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 @@ -40673,8 +41636,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 @@ -40686,8 +41651,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 @@ -40699,8 +41666,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 @@ -40712,8 +41681,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 @@ -40725,8 +41696,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 @@ -40738,8 +41711,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 @@ -40751,8 +41726,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 @@ -40764,8 +41741,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 @@ -40777,8 +41756,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 @@ -40790,8 +41771,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 @@ -40803,8 +41786,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 @@ -40816,8 +41801,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 @@ -40829,8 +41816,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 @@ -40842,8 +41831,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 @@ -40855,8 +41846,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 @@ -40868,8 +41861,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 @@ -40881,8 +41876,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 @@ -40894,8 +41891,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 @@ -40907,8 +41906,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 @@ -40920,8 +41921,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 @@ -40933,8 +41936,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 @@ -40946,8 +41951,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 @@ -40959,8 +41966,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 @@ -40972,8 +41981,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 @@ -40985,8 +41996,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 @@ -40998,8 +42011,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 @@ -41011,8 +42026,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 @@ -41024,8 +42041,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 @@ -41037,8 +42056,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 @@ -41050,8 +42071,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 @@ -41063,8 +42086,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 @@ -41076,8 +42101,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 @@ -41089,8 +42116,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 @@ -41102,8 +42131,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 @@ -41115,8 +42146,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 @@ -41128,8 +42161,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 @@ -41141,8 +42176,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 @@ -41154,8 +42191,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 @@ -41167,8 +42206,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 @@ -41180,8 +42221,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 @@ -41193,8 +42236,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 @@ -41206,8 +42251,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 @@ -41219,8 +42266,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 @@ -41232,8 +42281,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 @@ -42150,9 +43201,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 @@ -42163,9 +43215,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 @@ -42176,9 +43229,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 @@ -42189,9 +43243,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 @@ -42202,9 +43257,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 @@ -42215,9 +43271,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 @@ -42228,9 +43285,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 @@ -42241,9 +43299,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 @@ -42254,9 +43313,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 @@ -42267,9 +43327,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 @@ -42280,9 +43341,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 @@ -42293,9 +43355,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 @@ -42306,9 +43369,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 @@ -42319,9 +43383,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 @@ -42332,9 +43397,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 @@ -42345,9 +43411,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 @@ -42358,9 +43425,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 @@ -42371,9 +43439,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 @@ -42384,9 +43453,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 @@ -42397,9 +43467,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 @@ -42410,9 +43481,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 @@ -42423,9 +43495,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 @@ -42436,9 +43509,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 @@ -42449,9 +43523,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 @@ -42462,9 +43537,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 @@ -42475,9 +43551,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 @@ -42488,9 +43565,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 @@ -42501,9 +43579,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 @@ -42514,9 +43593,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 @@ -42527,9 +43607,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 @@ -42540,9 +43621,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 @@ -42553,9 +43635,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 @@ -42566,9 +43649,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 @@ -42579,9 +43663,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 @@ -42592,9 +43677,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 @@ -42605,9 +43691,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 @@ -42618,9 +43705,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 @@ -42631,9 +43719,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 @@ -42644,9 +43733,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 @@ -42657,9 +43747,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 @@ -42670,9 +43761,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 @@ -42683,9 +43775,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 @@ -42696,9 +43789,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 @@ -42709,9 +43803,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 @@ -42722,9 +43817,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 @@ -42735,9 +43831,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 @@ -42748,9 +43845,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 @@ -42761,9 +43859,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 @@ -42774,9 +43873,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 @@ -42787,9 +43887,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 @@ -42800,9 +43901,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 @@ -42813,9 +43915,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 @@ -42826,9 +43929,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 @@ -42839,9 +43943,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 @@ -42852,9 +43957,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 @@ -42865,9 +43971,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 @@ -42878,9 +43985,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 @@ -42891,9 +43999,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 @@ -42904,9 +44013,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 @@ -42917,9 +44027,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 @@ -42930,9 +44041,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 @@ -42943,9 +44055,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 @@ -42956,9 +44069,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 @@ -42969,9 +44083,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 @@ -42982,9 +44097,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 @@ -42995,9 +44111,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 @@ -43008,9 +44125,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 @@ -43216,9 +44334,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 @@ -43229,9 +44348,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 @@ -43242,9 +44362,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 @@ -43255,9 +44376,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 @@ -43268,9 +44390,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 @@ -43281,9 +44404,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 @@ -43294,9 +44418,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 @@ -43307,9 +44432,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 @@ -43320,9 +44446,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 @@ -43333,9 +44460,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 @@ -43346,9 +44474,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 @@ -43359,9 +44488,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 @@ -43372,9 +44502,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 @@ -43385,9 +44516,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 @@ -43398,9 +44530,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 @@ -44502,10 +45635,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 @@ -44515,10 +45648,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 @@ -44528,10 +45661,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 @@ -44541,10 +45674,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 @@ -44554,10 +45687,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 @@ -44567,10 +45700,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 @@ -44580,10 +45713,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 @@ -44593,10 +45726,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 @@ -44606,10 +45739,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 @@ -44619,10 +45752,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 @@ -44635,7 +45768,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 @@ -44648,7 +45781,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 @@ -44658,10 +45791,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 @@ -44674,7 +45807,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 @@ -44687,7 +45820,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 @@ -44700,7 +45833,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 @@ -44710,10 +45843,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 @@ -44723,10 +45856,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 @@ -44736,10 +45869,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 @@ -44749,10 +45882,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 @@ -44762,10 +45895,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 @@ -44775,10 +45908,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 @@ -44788,10 +45921,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 @@ -44801,10 +45934,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 @@ -44814,10 +45947,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 @@ -44830,7 +45963,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 @@ -44840,10 +45973,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 @@ -44853,10 +45986,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 @@ -44866,10 +45999,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 @@ -44879,10 +46012,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 @@ -44892,10 +46025,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 @@ -44905,10 +46038,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 @@ -45816,9 +46949,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 @@ -45829,9 +46963,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 @@ -45842,9 +46977,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 @@ -45855,9 +46991,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 @@ -45868,9 +47005,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 @@ -45881,9 +47019,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 @@ -45894,9 +47033,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 @@ -45907,9 +47047,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 @@ -45920,9 +47061,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 @@ -45933,9 +47075,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 @@ -45946,9 +47089,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 @@ -45959,9 +47103,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 @@ -45972,9 +47117,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 @@ -45985,9 +47131,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 @@ -45998,9 +47145,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 @@ -46011,9 +47159,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 @@ -46024,9 +47173,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 @@ -46037,9 +47187,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 @@ -46050,9 +47201,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 @@ -46063,9 +47215,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 @@ -46076,9 +47229,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 @@ -46089,9 +47243,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 @@ -46102,9 +47257,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 @@ -46115,9 +47271,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 @@ -46128,9 +47285,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 @@ -46141,9 +47299,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 @@ -46154,9 +47313,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 @@ -46167,9 +47327,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 @@ -46180,9 +47341,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 @@ -46193,9 +47355,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 @@ -46206,9 +47369,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 @@ -46219,9 +47383,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 @@ -46232,9 +47397,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 @@ -46245,9 +47411,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 @@ -46258,9 +47425,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 @@ -46271,9 +47439,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 @@ -46284,9 +47453,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 @@ -46297,9 +47467,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 @@ -46310,9 +47481,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 @@ -46323,9 +47495,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 @@ -46336,9 +47509,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 @@ -46349,9 +47523,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 @@ -46362,9 +47537,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 @@ -46375,9 +47551,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 @@ -46388,9 +47565,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 @@ -46401,9 +47579,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 @@ -46414,9 +47593,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 @@ -46427,9 +47607,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 @@ -46440,9 +47621,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 @@ -46453,9 +47635,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 @@ -46466,9 +47649,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 @@ -47168,9 +48352,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 @@ -47180,9 +48365,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 @@ -47192,9 +48378,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 @@ -47204,9 +48391,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 @@ -47216,9 +48404,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 @@ -47228,9 +48417,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 @@ -47240,9 +48430,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 @@ -47252,9 +48443,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 @@ -47264,9 +48456,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 @@ -47276,9 +48469,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 @@ -47290,7 +48484,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 @@ -47302,7 +48497,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 @@ -47314,7 +48510,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 @@ -47326,7 +48523,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 @@ -47338,7 +48536,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 @@ -47350,7 +48549,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 @@ -47362,7 +48562,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 @@ -47372,9 +48573,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 @@ -47384,9 +48586,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 @@ -47396,9 +48599,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 @@ -47408,9 +48612,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 @@ -47420,9 +48625,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 @@ -47432,9 +48638,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 @@ -47444,9 +48651,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 @@ -47456,9 +48664,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 2e7cb28584..824e3ffba0 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_i32_i32_=>_none (func (param i32 i32 i32))) @@ -1039,14 +1039,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) @@ -1278,9 +1270,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 @@ -1289,9 +1284,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 @@ -1315,13 +1313,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 @@ -1373,7 +1364,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 @@ -1389,62 +1383,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 @@ -1452,73 +1448,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 @@ -1593,6 +1594,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) @@ -2024,160 +2097,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 @@ -2257,10 +2220,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 @@ -2268,8 +2235,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 @@ -2279,12 +2246,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 @@ -2295,14 +2262,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 @@ -2315,9 +2282,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 @@ -2325,8 +2292,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 @@ -2337,12 +2304,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 @@ -2353,14 +2320,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 @@ -2372,20 +2339,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 @@ -2397,23 +2405,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 @@ -2424,9 +2432,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 @@ -2434,8 +2442,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 @@ -2446,11 +2454,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 @@ -2460,14 +2468,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 @@ -2480,9 +2488,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 @@ -2490,8 +2498,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 @@ -2501,12 +2509,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 @@ -2517,11 +2525,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 @@ -2531,14 +2539,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 @@ -2550,9 +2558,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 @@ -2562,18 +2570,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 @@ -2603,7 +2614,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 @@ -2619,62 +2633,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 @@ -2682,71 +2698,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 @@ -2821,39 +2842,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 @@ -2864,75 +2877,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 @@ -2960,7 +2940,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 @@ -3019,17 +3002,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 @@ -3039,12 +3026,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 @@ -3055,14 +3042,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 @@ -3075,16 +3062,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 @@ -3095,12 +3082,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 @@ -3111,14 +3098,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 @@ -3130,20 +3117,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 @@ -3155,23 +3183,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 @@ -3182,16 +3210,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 @@ -3202,11 +3230,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 @@ -3216,14 +3244,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 @@ -3236,16 +3264,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 @@ -3255,12 +3283,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 @@ -3271,11 +3299,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 @@ -3285,14 +3313,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 @@ -3304,9 +3332,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 @@ -3316,18 +3344,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 @@ -3637,6 +3668,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 @@ -3687,123 +3794,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 @@ -3893,10 +3883,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 @@ -3904,8 +3898,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 @@ -3915,13 +3909,13 @@ 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 - call $~lib/set/Set#has + local.get $1 + local.get $3 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -3931,14 +3925,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 @@ -3951,9 +3945,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 @@ -3961,8 +3955,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 @@ -3973,12 +3967,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 @@ -3989,14 +3983,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 @@ -4008,20 +4002,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 @@ -4033,23 +4068,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 @@ -4060,9 +4095,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 @@ -4070,8 +4105,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 @@ -4082,11 +4117,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 @@ -4096,14 +4131,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 @@ -4116,9 +4151,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 @@ -4126,8 +4161,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 @@ -4137,12 +4172,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 @@ -4153,11 +4188,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 @@ -4167,14 +4202,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 @@ -4186,9 +4221,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 @@ -4198,18 +4233,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 @@ -4457,40 +4495,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 @@ -4501,78 +4531,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 @@ -4661,17 +4658,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 @@ -4681,12 +4682,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 @@ -4697,14 +4698,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 @@ -4717,16 +4718,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 @@ -4737,12 +4738,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 @@ -4753,14 +4754,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 @@ -4772,20 +4773,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 @@ -4797,23 +4839,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 @@ -4824,16 +4866,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 @@ -4844,11 +4886,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 @@ -4858,14 +4900,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 @@ -4878,16 +4920,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 @@ -4897,12 +4939,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 @@ -4913,11 +4955,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 @@ -4927,14 +4969,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 @@ -4946,9 +4988,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 @@ -4958,18 +5000,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 @@ -5285,6 +5330,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 @@ -5335,139 +5456,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 @@ -5537,15 +5541,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 @@ -5555,12 +5563,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 @@ -5571,14 +5579,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 @@ -5591,14 +5599,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 @@ -5609,12 +5617,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 @@ -5625,14 +5633,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 @@ -5644,20 +5652,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 @@ -5669,23 +5718,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 @@ -5696,14 +5745,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 @@ -5714,11 +5763,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 @@ -5728,14 +5777,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 @@ -5748,14 +5797,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 @@ -5765,12 +5814,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 @@ -5781,11 +5830,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 @@ -5795,14 +5844,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 @@ -5814,9 +5863,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 @@ -5826,18 +5875,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 @@ -5861,40 +5913,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 @@ -5905,93 +5949,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 @@ -6001,12 +6016,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 @@ -6017,14 +6032,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 @@ -6037,14 +6052,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 @@ -6055,12 +6070,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 @@ -6071,14 +6086,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 @@ -6090,20 +6105,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 @@ -6115,23 +6171,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 @@ -6142,14 +6198,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 @@ -6160,11 +6216,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 @@ -6174,14 +6230,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 @@ -6194,14 +6250,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 @@ -6211,12 +6267,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 @@ -6227,11 +6283,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 @@ -6241,14 +6297,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 @@ -6260,9 +6316,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 @@ -6272,18 +6328,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 @@ -6634,15 +6693,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 @@ -6684,123 +6819,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 @@ -6916,20 +6934,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 @@ -6939,12 +6961,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 @@ -6955,14 +6977,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 @@ -6975,14 +6997,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 @@ -6993,12 +7015,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 @@ -7009,14 +7031,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 @@ -7028,20 +7050,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 @@ -7053,22 +7116,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 @@ -7080,14 +7143,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 @@ -7098,11 +7161,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 @@ -7112,14 +7175,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 @@ -7132,14 +7195,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 @@ -7149,12 +7212,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 @@ -7165,11 +7228,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 @@ -7179,14 +7242,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 @@ -7198,9 +7261,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 @@ -7210,18 +7273,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 @@ -7245,40 +7311,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 @@ -7289,94 +7347,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 @@ -7386,12 +7415,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 @@ -7402,14 +7431,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 @@ -7422,14 +7451,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 @@ -7440,12 +7469,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 @@ -7456,14 +7485,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 @@ -7475,20 +7504,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 @@ -7500,22 +7570,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 @@ -7527,14 +7597,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 @@ -7545,11 +7615,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 @@ -7559,14 +7629,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 @@ -7579,14 +7649,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 @@ -7596,12 +7666,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 @@ -7612,11 +7682,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 @@ -7626,14 +7696,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 @@ -7645,9 +7715,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 @@ -7657,18 +7727,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 @@ -7956,41 +8029,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 @@ -8001,48 +8065,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 @@ -8054,7 +8138,7 @@ if local.get $3 f32.load - local.set $4 + local.set $6 local.get $1 local.get $0 i32.load offset=12 @@ -8088,17 +8172,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 @@ -8493,9 +8577,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 @@ -8783,41 +8870,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 @@ -8828,48 +8906,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 @@ -8881,7 +8979,7 @@ if local.get $3 f64.load - local.set $4 + local.set $6 local.get $1 local.get $0 i32.load offset=12 @@ -8915,17 +9013,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 e3d158eb71..a59abbd018 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))) (memory $0 1) (data (i32.const 1024) "\0c\00\00\00\01\00\00\00\03\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") @@ -25,18 +25,14 @@ (global $std/staticarray/arr4 (mut i32) (i32.const 0)) (export "memory" (memory $0)) (start $~start) - (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 @@ -56,7 +52,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 @@ -1069,14 +1069,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.copy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) @@ -1251,9 +1243,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 @@ -1313,13 +1308,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 @@ -1331,6 +1319,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 @@ -1346,8 +1343,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 @@ -1399,8 +1398,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 @@ -1427,7 +1428,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 @@ -1469,7 +1474,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 @@ -1496,7 +1505,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 @@ -1519,16 +1532,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 877130baff..a1c9a4cf9a 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -302,14 +302,6 @@ (global $~lib/rt/tlsf/collectLock (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/rt/pure/__retain (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -1362,14 +1354,6 @@ call $~lib/rt/tlsf/prepareBlock 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) @@ -1866,7 +1850,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 @@ -1874,23 +1862,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 @@ -1900,7 +1894,7 @@ i32.shr_u if block $for-continue|0 - local.get $9 + local.get $7 local.get $8 i32.const 1 i32.sub @@ -1914,7 +1908,7 @@ select if local.get $0 - local.get $9 + local.get $7 i32.const 1 i32.shl i32.add @@ -1925,10 +1919,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 @@ -1945,8 +1939,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 @@ -1956,10 +1950,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 @@ -1970,8 +1964,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 @@ -1989,23 +1983,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 @@ -2013,19 +2006,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 @@ -2049,80 +2042,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_u 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 @@ -2141,19 +2134,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 @@ -2287,10 +2280,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 @@ -2346,25 +2347,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 @@ -2374,14 +2381,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 @@ -2399,7 +2406,7 @@ i32.shl i32.add i32.load16_u offset=2 - local.tee $7 + local.tee $5 i32.const 56319 i32.sub i32.const 1025 @@ -2409,11 +2416,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 @@ -2425,21 +2432,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 @@ -2448,94 +2455,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 @@ -2543,8 +2547,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 @@ -2552,22 +2556,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 @@ -2575,12 +2578,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 @@ -2589,10 +2592,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 @@ -2603,88 +2606,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 @@ -2693,7 +2694,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 @@ -2721,8 +2722,8 @@ i32.const 25 i32.le_u if + local.get $9 local.get $10 - local.get $11 i32.const 1 i32.shl i32.add @@ -2740,16 +2741,16 @@ i32.const 65536 i32.lt_u 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 @@ -2770,23 +2771,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 @@ -2802,15 +2803,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 @@ -2830,13 +2831,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 @@ -2868,17 +2873,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 @@ -2914,10 +2926,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 @@ -2938,6 +2950,7 @@ i64.const 4294967295 i64.le_u if + call $~lib/rt/tlsf/maybeInitialize local.get $0 i32.wrap_i64 local.tee $1 @@ -2983,7 +2996,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 @@ -3011,6 +3027,7 @@ br_if $do-continue|0 end else + call $~lib/rt/tlsf/maybeInitialize local.get $0 i64.const 100000000000 i64.ge_u @@ -3058,7 +3075,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 @@ -3123,16 +3143,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 @@ -3142,8 +3170,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 d1a1b654c7..ec19911a23 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -1104,22 +1104,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/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) @@ -1299,12 +1283,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 @@ -1478,12 +1471,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 @@ -1623,10 +1619,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 @@ -2070,12 +2074,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 @@ -2513,11 +2526,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 258a9fc2f4..1359bc8237 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -520,14 +520,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) @@ -648,10 +640,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 @@ -679,7 +679,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 @@ -1690,17 +1694,10 @@ 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/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 @@ -1708,7 +1705,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 @@ -1754,6 +1753,7 @@ call $~lib/builtins/abort unreachable end + call $~lib/rt/tlsf/maybeInitialize i32.const 2 local.get $0 i32.const 65535 @@ -1761,7 +1761,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 @@ -1797,7 +1799,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 @@ -1807,7 +1813,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 @@ -2064,17 +2074,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 @@ -2083,7 +2091,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 @@ -2093,9 +2109,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 @@ -2146,26 +2165,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 @@ -2175,53 +2200,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 @@ -2229,22 +2257,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 @@ -2259,7 +2302,7 @@ i32.gt_s select local.tee $2 - local.get $3 + local.get $5 local.get $4 i32.sub local.tee $3 @@ -2310,12 +2353,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 @@ -2409,7 +2460,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 @@ -2450,9 +2505,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 @@ -2466,7 +2524,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 @@ -2506,9 +2568,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 @@ -2521,8 +2586,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 @@ -2591,9 +2662,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 @@ -2613,7 +2687,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 @@ -2639,7 +2717,7 @@ end end f64.const 1 - local.set $6 + local.set $5 i32.const 1 local.get $2 i32.const 43 @@ -2661,7 +2739,7 @@ i32.const 45 i32.eq select - local.set $6 + local.set $5 local.get $4 i32.const 2 i32.add @@ -2831,7 +2909,7 @@ local.get $1 i32.ge_u if - local.get $5 + local.get $6 i64.reinterpret_f64 i64.const 1 i64.shl @@ -2842,14 +2920,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 @@ -2860,8 +2938,8 @@ end local.get $3 call $~lib/rt/pure/__release - local.get $6 local.get $5 + local.get $6 f64.mul return end @@ -2890,7 +2968,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 @@ -3103,7 +3185,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 @@ -3422,34 +3508,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 @@ -3460,43 +3550,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 @@ -3505,14 +3595,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 @@ -3530,30 +3620,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 @@ -3562,61 +3652,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 @@ -3624,82 +3714,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 @@ -3707,35 +3797,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 @@ -3743,29 +3831,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 @@ -3773,17 +3861,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 @@ -3796,17 +3884,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 @@ -3821,31 +3909,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 @@ -3853,16 +3941,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 @@ -3873,9 +3960,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 @@ -3889,7 +3976,7 @@ i32.gt_s select if - local.get $10 + local.get $11 local.get $0 i32.const 3 i32.shl @@ -3897,20 +3984,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 @@ -3923,7 +4010,7 @@ i32.const 0 i32.gt_s if - local.get $10 + local.get $11 local.get $0 i32.const 3 i32.shl @@ -3933,7 +4020,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 @@ -3948,32 +4035,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 @@ -3982,91 +4069,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 @@ -4074,11 +4161,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 @@ -4086,46 +4173,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 @@ -4133,11 +4220,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 @@ -4145,14 +4232,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 @@ -4163,13 +4250,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 ) @@ -4213,16 +4300,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 @@ -4232,9 +4327,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 @@ -4292,12 +4390,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 @@ -4354,12 +4460,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 @@ -4427,7 +4541,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 @@ -4464,15 +4582,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 @@ -4496,10 +4617,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 @@ -4530,7 +4659,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 @@ -4539,11 +4672,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 @@ -4772,16 +4908,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 @@ -4792,9 +4936,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 @@ -4803,8 +4947,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 @@ -4817,6 +4965,7 @@ local.set $0 br $folding-inner0 end + call $~lib/rt/tlsf/maybeInitialize local.get $4 local.get $2 local.get $4 @@ -4827,9 +4976,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 @@ -4861,7 +5012,7 @@ i32.const 1 i32.shl i32.add - local.get $5 + local.get $6 local.get $2 i32.const 1 i32.shl @@ -4886,39 +5037,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 @@ -4931,8 +5085,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 @@ -4941,14 +5095,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 @@ -4963,49 +5120,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 @@ -5020,17 +5177,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 @@ -5041,7 +5198,7 @@ end local.get $1 local.get $2 - local.get $8 + local.get $7 i32.add local.tee $0 i32.gt_u @@ -5060,22 +5217,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 @@ -5129,12 +5290,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 @@ -5156,7 +5320,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 @@ -5189,9 +5357,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 @@ -5214,7 +5385,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 @@ -5270,9 +5445,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 @@ -5286,16 +5464,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 @@ -5561,220 +5745,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 @@ -6088,7 +6283,7 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $2 + local.tee $3 if i32.const 0 local.get $0 @@ -6101,14 +6296,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 @@ -6117,7 +6317,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 @@ -6131,8 +6332,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 @@ -6141,14 +6344,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 @@ -6156,13 +6364,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) @@ -6199,8 +6407,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 @@ -6210,6 +6423,7 @@ i32.const 16 i32.eq if + call $~lib/rt/tlsf/maybeInitialize i32.const 31 local.get $0 i32.clz @@ -6222,7 +6436,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 @@ -6235,8 +6451,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 @@ -6398,8 +6619,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 @@ -6410,8 +6636,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 @@ -6422,6 +6653,7 @@ i32.const 16 i32.eq if + call $~lib/rt/tlsf/maybeInitialize i32.const 63 local.get $0 i64.clz @@ -6435,7 +6667,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 @@ -6447,8 +6681,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 @@ -6489,7 +6728,7 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.tee $2 + local.tee $3 if i64.const 0 local.get $0 @@ -6508,28 +6747,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 @@ -6539,7 +6788,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 @@ -6554,8 +6804,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 @@ -6563,27 +6815,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) @@ -7526,9 +7783,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 @@ -7556,9 +7816,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) @@ -7898,7 +8158,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 @@ -7914,7 +8178,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 @@ -7966,7 +8234,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 @@ -7982,7 +8250,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 @@ -7998,7 +8266,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 @@ -8013,7 +8281,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 @@ -8027,7 +8295,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 @@ -8041,7 +8309,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 @@ -8055,7 +8323,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 @@ -8067,51 +8335,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 @@ -8122,41 +8395,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 @@ -8187,7 +8468,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 @@ -8203,7 +8484,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 @@ -8602,7 +8883,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 @@ -9443,11 +9728,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 @@ -11670,17 +11955,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 @@ -11691,18 +11976,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 @@ -11716,7 +12003,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 @@ -11731,7 +12018,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 @@ -11746,7 +12033,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 @@ -11761,7 +12048,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 @@ -11776,7 +12063,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 @@ -11791,7 +12078,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 @@ -11806,7 +12093,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 @@ -11821,7 +12108,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 @@ -11836,7 +12123,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 @@ -11852,7 +12139,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 @@ -11868,7 +12155,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 @@ -11884,7 +12171,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 @@ -11900,7 +12187,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 @@ -11916,7 +12203,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 @@ -11932,7 +12219,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 @@ -11948,7 +12235,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 @@ -11964,7 +12251,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 @@ -11980,7 +12267,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 @@ -11996,7 +12283,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 @@ -12012,7 +12299,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 @@ -12028,7 +12315,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 @@ -12044,7 +12331,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 @@ -12060,7 +12347,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 @@ -12076,7 +12363,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 @@ -12092,7 +12379,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 @@ -12108,7 +12395,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 @@ -12124,7 +12411,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 @@ -12140,7 +12427,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 @@ -12156,7 +12443,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 @@ -12172,7 +12459,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 @@ -12188,7 +12475,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 @@ -12204,7 +12491,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 @@ -12220,7 +12507,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 @@ -12236,7 +12523,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 @@ -12252,7 +12539,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 @@ -12268,7 +12555,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 @@ -12284,7 +12571,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 @@ -12300,7 +12587,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 @@ -12316,7 +12603,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 @@ -12332,7 +12619,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 @@ -12348,7 +12635,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 @@ -12364,7 +12651,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 @@ -12380,7 +12667,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 @@ -12400,7 +12687,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 @@ -12416,7 +12703,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 @@ -12432,7 +12719,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 @@ -12448,7 +12735,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 @@ -12464,7 +12751,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 @@ -12480,7 +12767,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 @@ -12496,7 +12783,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 @@ -12512,7 +12799,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 @@ -12528,7 +12815,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 @@ -12544,7 +12831,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 @@ -12560,7 +12847,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 @@ -12576,7 +12863,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 @@ -12592,7 +12879,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 @@ -12608,7 +12895,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 @@ -12624,7 +12911,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 @@ -12640,7 +12927,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 @@ -12656,7 +12943,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 @@ -12672,7 +12959,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 @@ -12688,7 +12975,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 @@ -12704,7 +12991,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 @@ -12720,7 +13007,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 @@ -12736,7 +13023,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 @@ -12752,7 +13039,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 @@ -12768,7 +13055,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 @@ -12784,7 +13071,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 @@ -12800,7 +13087,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 @@ -12816,7 +13103,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 @@ -12832,25 +13119,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 @@ -12864,10 +13151,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 @@ -12881,9 +13168,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 @@ -12891,17 +13179,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 @@ -12925,17 +13213,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 @@ -12959,47 +13247,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 @@ -13023,47 +13311,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 @@ -13087,62 +13375,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 @@ -13166,62 +13454,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 @@ -13245,62 +13533,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 @@ -13314,58 +13602,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 @@ -13379,10 +13667,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 @@ -13396,9 +13684,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 @@ -13406,17 +13695,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 @@ -13440,17 +13729,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 @@ -13474,47 +13763,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 @@ -13538,47 +13827,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 @@ -13592,58 +13881,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 @@ -13653,12 +13942,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 @@ -13673,7 +13962,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 @@ -13688,7 +13977,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 @@ -13703,7 +13992,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 @@ -13718,7 +14007,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 @@ -13733,7 +14022,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 @@ -13748,7 +14037,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 @@ -13763,7 +14052,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 @@ -13778,7 +14067,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 @@ -13793,7 +14082,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 @@ -13808,7 +14097,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 @@ -13823,7 +14112,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 @@ -13838,7 +14127,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 @@ -13853,7 +14142,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 @@ -13868,7 +14157,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 @@ -13883,7 +14172,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 @@ -13898,7 +14187,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 @@ -13913,7 +14202,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 @@ -13928,7 +14217,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 @@ -13943,7 +14232,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 @@ -13958,7 +14247,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 @@ -13973,7 +14262,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 @@ -13988,7 +14277,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 @@ -14003,7 +14292,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 @@ -14018,7 +14307,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 @@ -14033,7 +14322,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 @@ -14048,7 +14337,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 @@ -14063,7 +14352,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 @@ -14078,7 +14367,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 @@ -14093,7 +14382,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 @@ -14108,7 +14397,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 @@ -14123,7 +14412,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 @@ -14138,7 +14427,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 @@ -14153,7 +14442,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 @@ -14168,7 +14457,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 @@ -14183,7 +14472,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 @@ -14198,7 +14487,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 @@ -14213,7 +14502,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 @@ -14228,7 +14517,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 @@ -14243,7 +14532,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 @@ -14258,7 +14547,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 @@ -14273,7 +14562,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 @@ -14288,7 +14577,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 @@ -14303,7 +14592,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 @@ -14318,7 +14607,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 @@ -14333,7 +14622,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 @@ -14348,7 +14637,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 @@ -14363,7 +14652,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 @@ -14378,7 +14667,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 @@ -14393,7 +14682,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 @@ -14408,7 +14697,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 @@ -14423,7 +14712,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 @@ -14438,7 +14727,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 @@ -14453,7 +14742,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 @@ -14468,7 +14757,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 @@ -14483,7 +14772,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 @@ -14498,7 +14787,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 @@ -14513,7 +14802,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 @@ -14528,7 +14817,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 @@ -14543,7 +14832,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 @@ -14558,7 +14847,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 @@ -14573,7 +14862,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 @@ -14588,7 +14877,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 @@ -14603,7 +14892,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 @@ -14618,7 +14907,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 @@ -14633,7 +14922,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 @@ -14648,7 +14937,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 @@ -14663,7 +14952,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 @@ -14678,7 +14967,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 @@ -14693,7 +14982,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 @@ -14708,7 +14997,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 @@ -14723,7 +15012,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 @@ -14738,7 +15027,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 @@ -14753,7 +15042,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 @@ -14768,7 +15057,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 @@ -14783,7 +15072,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 @@ -14798,7 +15087,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 @@ -14813,7 +15102,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 @@ -14828,7 +15117,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 @@ -14843,7 +15132,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 @@ -14858,7 +15147,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 @@ -14873,7 +15162,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 @@ -14888,7 +15177,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 @@ -14903,7 +15192,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 @@ -14918,7 +15207,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 @@ -14933,7 +15222,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 @@ -14948,7 +15237,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 @@ -14963,7 +15252,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 @@ -14978,7 +15267,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 @@ -14993,7 +15282,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 @@ -15008,7 +15297,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 @@ -15023,7 +15312,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 @@ -15038,7 +15327,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 @@ -15053,7 +15342,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 @@ -15068,7 +15357,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 @@ -15083,7 +15372,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 @@ -15098,7 +15387,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 @@ -15113,7 +15402,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 @@ -15128,7 +15417,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 @@ -15143,7 +15432,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 @@ -15158,7 +15447,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 @@ -15173,7 +15462,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 @@ -15188,7 +15477,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 @@ -15203,7 +15492,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 @@ -15218,7 +15507,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 @@ -15233,7 +15522,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 @@ -15248,7 +15537,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 @@ -15263,7 +15552,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 @@ -15278,7 +15567,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 @@ -15293,7 +15582,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 @@ -15308,7 +15597,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 @@ -15323,7 +15612,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 @@ -15338,7 +15627,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 @@ -15353,7 +15642,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 @@ -15368,7 +15657,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 @@ -15383,7 +15672,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 @@ -15398,7 +15687,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 @@ -15413,7 +15702,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 @@ -15428,7 +15717,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 @@ -15443,7 +15732,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 @@ -15458,7 +15747,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 @@ -15473,7 +15762,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 @@ -15488,7 +15777,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 @@ -15503,7 +15792,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 @@ -15518,7 +15807,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 @@ -15533,7 +15822,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 @@ -15548,7 +15837,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 @@ -15563,7 +15852,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 @@ -15578,7 +15867,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 @@ -15593,7 +15882,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 @@ -15608,7 +15897,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 @@ -15623,7 +15912,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 @@ -15638,7 +15927,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 @@ -15653,7 +15942,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 @@ -15668,7 +15957,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 @@ -15683,7 +15972,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 @@ -15698,7 +15987,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 @@ -15713,7 +16002,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 @@ -15728,7 +16017,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 @@ -15743,7 +16032,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 @@ -15758,7 +16047,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 @@ -15772,7 +16061,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 @@ -15786,7 +16075,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 @@ -15800,7 +16089,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 @@ -15814,7 +16103,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 @@ -15828,7 +16117,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 @@ -15842,7 +16131,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 @@ -15856,7 +16145,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 @@ -15870,7 +16159,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 @@ -15884,7 +16173,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 @@ -15898,7 +16187,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 @@ -15912,7 +16201,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 @@ -15926,7 +16215,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 @@ -15940,7 +16229,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 @@ -15954,7 +16243,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 @@ -15968,7 +16257,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 @@ -15982,7 +16271,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 @@ -15996,7 +16285,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 @@ -16010,7 +16299,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 @@ -16024,7 +16313,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 @@ -16038,7 +16327,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 @@ -16052,7 +16341,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 @@ -16066,7 +16355,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 @@ -16080,7 +16369,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 @@ -16094,7 +16383,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 @@ -16108,7 +16397,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 @@ -16122,7 +16411,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 @@ -16136,7 +16425,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 @@ -16150,7 +16439,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 @@ -16164,7 +16453,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 @@ -16178,7 +16467,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 @@ -16192,7 +16481,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 @@ -16206,7 +16495,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 @@ -16220,7 +16509,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 @@ -16234,7 +16523,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 @@ -16248,7 +16537,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 @@ -16262,7 +16551,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 @@ -16276,7 +16565,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 @@ -16290,7 +16579,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 @@ -16304,7 +16593,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 @@ -16318,7 +16607,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 @@ -16332,7 +16621,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 @@ -16346,7 +16635,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 @@ -16360,7 +16649,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 @@ -16374,7 +16663,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 @@ -16388,7 +16677,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 @@ -16402,7 +16691,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 @@ -16416,7 +16705,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 @@ -16430,7 +16719,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 @@ -16444,7 +16733,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 @@ -16458,7 +16747,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 @@ -16472,10 +16761,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 @@ -16490,6 +16775,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 @@ -16544,16 +16833,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 @@ -16680,16 +16973,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 @@ -17056,16 +17355,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 b8b8591ed0..57c55a5358 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))) @@ -1337,14 +1337,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) (param $2 i32) (local $3 i32) (local $4 i64) @@ -1573,9 +1565,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 @@ -1601,19 +1596,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 @@ -1637,106 +1634,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 @@ -1757,7 +1780,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 @@ -1793,7 +1819,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 @@ -1829,7 +1858,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 @@ -1865,7 +1897,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 @@ -1905,7 +1940,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 @@ -1945,7 +1983,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 @@ -1985,7 +2026,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 @@ -2025,7 +2069,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 @@ -2065,7 +2112,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 @@ -2105,7 +2155,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 @@ -2145,7 +2198,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 @@ -2306,9 +2362,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 @@ -2417,9 +2476,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 @@ -2598,6 +2660,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 @@ -2607,7 +2670,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 @@ -3299,35 +3364,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 @@ -3353,13 +3423,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) @@ -3388,7 +3451,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 @@ -3401,10 +3463,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 @@ -3479,9 +3542,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 @@ -4431,13 +4497,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 @@ -4507,13 +4579,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 @@ -4602,13 +4680,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 @@ -4682,16 +4766,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 @@ -4791,16 +4881,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 @@ -4900,16 +4996,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 @@ -4986,16 +5088,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 @@ -5100,16 +5208,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 @@ -5209,16 +5323,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 @@ -5323,16 +5443,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 @@ -5437,16 +5563,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 @@ -5635,13 +5767,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 @@ -5735,7 +5873,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 @@ -5827,13 +5968,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 @@ -5927,7 +6074,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 @@ -6012,13 +6162,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 @@ -6112,7 +6268,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 @@ -6208,15 +6367,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 @@ -6317,7 +6482,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 @@ -6413,15 +6581,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 @@ -6522,7 +6696,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 @@ -6616,15 +6793,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 @@ -6725,7 +6908,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 @@ -6819,15 +7005,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 @@ -6928,7 +7120,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 @@ -7022,15 +7217,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 @@ -7131,7 +7332,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 @@ -7225,15 +7429,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 @@ -7334,7 +7544,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 @@ -7428,15 +7641,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 @@ -7537,7 +7756,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 @@ -7631,15 +7853,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 @@ -7740,7 +7968,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 @@ -10604,9 +10835,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 @@ -10826,9 +11060,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 @@ -11106,9 +11343,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 @@ -11396,9 +11636,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 @@ -11832,9 +12075,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 @@ -12110,9 +12356,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 @@ -12335,9 +12584,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 @@ -12616,9 +12868,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 @@ -18725,7 +18980,7 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $1 + local.tee $2 if i32.const 0 local.get $0 @@ -18734,34 +18989,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 @@ -18829,7 +19081,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 @@ -18885,9 +19141,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 @@ -18931,7 +19190,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 @@ -18941,8 +19204,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 @@ -19142,10 +19410,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 @@ -19176,16 +19452,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) @@ -19252,7 +19533,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 @@ -19262,8 +19547,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 @@ -19441,7 +19731,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 @@ -19451,8 +19745,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 @@ -19605,9 +19904,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 @@ -19615,8 +19918,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 @@ -19782,7 +20090,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 @@ -19792,8 +20104,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 @@ -19937,7 +20254,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 @@ -19947,8 +20268,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 @@ -20113,6 +20439,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) @@ -20176,117 +20577,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 @@ -20295,7 +20645,7 @@ i32.shl i32.add local.get $0 - local.get $7 + local.get $6 i32.const 3 i32.shl i32.add @@ -20304,38 +20654,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 @@ -20349,13 +20699,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 ) @@ -20453,8 +20803,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 @@ -20465,8 +20820,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 @@ -20481,7 +20841,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 @@ -20491,8 +20855,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 @@ -21521,9 +21890,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 @@ -21648,7 +22020,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 @@ -21658,8 +22034,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 @@ -21784,7 +22165,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 @@ -21794,8 +22179,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 @@ -21897,9 +22287,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 @@ -21966,9 +22359,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 @@ -22041,6 +22437,7 @@ select end local.set $1 + call $~lib/rt/tlsf/maybeInitialize local.get $2 i32.const 0 i32.lt_s @@ -22072,7 +22469,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 @@ -22097,13 +22496,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 @@ -22120,14 +22519,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 @@ -22141,10 +22546,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 @@ -22154,22 +22559,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 @@ -22181,10 +22589,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 @@ -22207,11 +22615,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> @@ -22251,11 +22659,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 @@ -22320,13 +22734,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 @@ -22341,14 +22755,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 @@ -22362,10 +22782,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 @@ -22375,22 +22795,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 @@ -22402,10 +22825,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 @@ -22428,11 +22851,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> @@ -22476,11 +22899,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 @@ -22516,9 +22945,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 @@ -22615,11 +23047,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 @@ -22655,9 +23093,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 @@ -22752,11 +23193,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 @@ -22792,9 +23239,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 @@ -22889,11 +23339,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 @@ -22929,9 +23385,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 @@ -23027,11 +23486,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 @@ -23067,9 +23532,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 @@ -23165,11 +23633,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 @@ -23205,9 +23679,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 @@ -23303,11 +23780,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 @@ -23343,9 +23826,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 @@ -23441,11 +23927,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 @@ -23481,9 +23973,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 @@ -23616,7 +24111,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 @@ -23630,26 +24125,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 @@ -24195,20 +24694,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) @@ -24222,7 +24707,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 @@ -24236,24 +24721,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 @@ -24667,7 +25158,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 @@ -24681,24 +25172,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 @@ -30096,7 +30593,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 @@ -30178,7 +30678,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 @@ -30218,46 +30721,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 @@ -30271,8 +30774,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 @@ -30283,7 +30789,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 32 i32.ne @@ -30297,19 +30803,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 @@ -30318,7 +30824,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 @@ -30327,7 +30833,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 @@ -30344,7 +30850,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 @@ -30564,7 +31070,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 @@ -30808,7 +31317,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 @@ -30941,7 +31453,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 @@ -30994,7 +31509,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 @@ -31047,7 +31565,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 @@ -31542,7 +32063,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 @@ -31610,7 +32134,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 @@ -31663,7 +32190,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 @@ -31717,9 +32247,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 1dd4489829..5da15c926e 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -1,11 +1,11 @@ (module (type $none_=>_none (func)) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (result i32))) - (type $i32_=>_i32 (func (param i32) (result 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))) (memory $0 1) (data (i32.const 1024) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00w\00h\00i\00l\00e\00.\00t\00s") @@ -969,15 +969,10 @@ end 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 $0 + local.get $0 i32.const 1216 i32.gt_u if @@ -1270,9 +1265,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 @@ -1290,14 +1289,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 @@ -1338,11 +1341,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 @@ -1363,7 +1374,7 @@ local.set $0 br $while-break|0 end - br $while-continue|06 + br $while-continue|03 end end end @@ -1405,14 +1416,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 @@ -1420,14 +1431,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