From 99303c15fb407a7e1b7d8e71a0d6374595a12416 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sun, 26 Jun 2022 15:04:58 +0300 Subject: [PATCH] use uncheked array access for Map#values/keys & Set#values --- std/assembly/map.ts | 4 +- std/assembly/set.ts | 2 +- tests/compiler/issues/2322/index.release.wat | 72 +- tests/compiler/return-unreachable.release.wat | 88 +- tests/compiler/std-wasi/process.debug.wat | 2 +- tests/compiler/std-wasi/process.release.wat | 88 +- tests/compiler/std/map.debug.wat | 420 +---- tests/compiler/std/map.release.wat | 1579 +++++++---------- tests/compiler/std/set.debug.wat | 400 +---- tests/compiler/std/set.release.wat | 987 ++++------- 10 files changed, 1252 insertions(+), 2390 deletions(-) diff --git a/std/assembly/map.ts b/std/assembly/map.ts index 65f2f2d28c..8d9976afb0 100644 --- a/std/assembly/map.ts +++ b/std/assembly/map.ts @@ -201,7 +201,7 @@ export class Map { for (let i = 0; i < size; ++i) { let entry = changetype>(start + i * ENTRY_SIZE()); if (!(entry.taggedNext & EMPTY)) { - keys[length++] = entry.key; + unchecked(keys[length++] = entry.key); } } keys.length = length; @@ -217,7 +217,7 @@ export class Map { for (let i = 0; i < size; ++i) { let entry = changetype>(start + i * ENTRY_SIZE()); if (!(entry.taggedNext & EMPTY)) { - values[length++] = entry.value; + unchecked(values[length++] = entry.value); } } values.length = length; diff --git a/std/assembly/set.ts b/std/assembly/set.ts index 43063da90c..370ffa67d8 100644 --- a/std/assembly/set.ts +++ b/std/assembly/set.ts @@ -185,7 +185,7 @@ export class Set { for (let i = 0; i < size; ++i) { let entry = changetype>(start + i * ENTRY_SIZE()); if (!(entry.taggedNext & EMPTY)) { - values[length++] = entry.key; + unchecked(values[length++] = entry.key); } } values.length = length; diff --git a/tests/compiler/issues/2322/index.release.wat b/tests/compiler/issues/2322/index.release.wat index 6c073c2f01..6fa036930f 100644 --- a/tests/compiler/issues/2322/index.release.wat +++ b/tests/compiler/issues/2322/index.release.wat @@ -175,37 +175,37 @@ local.get $4 i32.store offset=4 end - local.get $2 + local.get $1 + local.get $0 local.get $3 i32.const 4 i32.shl + local.get $2 i32.add i32.const 2 i32.shl - local.get $0 i32.add i32.load offset=96 - local.get $1 i32.eq if - local.get $2 + local.get $0 local.get $3 i32.const 4 i32.shl + local.get $2 i32.add i32.const 2 i32.shl - local.get $0 i32.add local.get $5 i32.store offset=96 local.get $5 i32.eqz if + local.get $0 local.get $3 i32.const 2 i32.shl - local.get $0 i32.add local.tee $1 i32.load offset=4 @@ -356,12 +356,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 local.get $1 i32.const 4 i32.add + local.get $2 i32.add - local.get $4 i32.ne if i32.const 0 @@ -422,14 +422,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 local.get $5 i32.const 4 i32.shl + local.get $2 i32.add i32.const 2 i32.shl - local.get $0 i32.add i32.load offset=96 local.set $3 @@ -445,14 +445,14 @@ local.get $1 i32.store offset=4 end - local.get $2 + local.get $0 local.get $5 i32.const 4 i32.shl + local.get $2 i32.add i32.const 2 i32.shl - local.get $0 i32.add local.get $1 i32.store offset=96 @@ -464,10 +464,10 @@ i32.shl i32.or i32.store + local.get $0 local.get $5 i32.const 2 i32.shl - local.get $0 i32.add local.tee $0 local.get $0 @@ -504,11 +504,11 @@ i32.load offset=1568 local.tee $4 if - local.get $1 local.get $4 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -517,10 +517,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $1 i32.const 16 i32.sub + local.get $4 i32.eq if local.get $4 @@ -532,11 +532,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 @@ -575,10 +575,10 @@ local.get $1 i32.const 0 i32.store offset=8 - local.get $2 local.get $1 i32.const 4 i32.add + local.get $2 i32.add local.tee $2 i32.const 2 @@ -635,10 +635,10 @@ i32.const 16 i32.lt_u if - local.get $1 local.get $0 i32.const 4 i32.shl + local.get $1 i32.add i32.const 2 i32.shl @@ -699,25 +699,25 @@ i32.and local.set $0 loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace local.get $0 + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $0 global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 - local.get $1 local.get $0 i32.load offset=4 i32.const -4 i32.and + local.get $1 i32.or i32.store offset=4 i32.const 0 @@ -774,23 +774,23 @@ i32.and local.set $0 loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace local.get $0 + global.get $~lib/rt/itcms/toSpace i32.ne if + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 - local.get $1 local.get $0 i32.load offset=4 i32.const -4 i32.and + local.get $1 i32.or i32.store offset=4 local.get $0 @@ -943,11 +943,11 @@ i32.and local.tee $1 if (result i32) + local.get $0 local.get $1 i32.ctz i32.const 2 i32.shl - local.get $0 i32.add i32.load offset=96 else @@ -957,12 +957,12 @@ i32.and local.tee $1 if (result i32) + local.get $0 local.get $1 i32.ctz local.tee $2 i32.const 2 i32.shl - local.get $0 i32.add i32.load offset=4 local.tee $1 @@ -975,6 +975,7 @@ call $~lib/builtins/abort unreachable end + local.get $0 local.get $1 i32.ctz local.get $2 @@ -983,7 +984,6 @@ i32.add i32.const 2 i32.shl - local.get $0 i32.add i32.load offset=96 else @@ -1277,19 +1277,19 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $2 global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 local.get $0 local.get $3 i32.store offset=8 local.get $3 + local.get $0 local.get $3 i32.load offset=4 i32.const 3 i32.and - local.get $0 i32.or i32.store offset=4 local.get $2 @@ -1350,8 +1350,8 @@ i32.and i32.eq if - global.get $~lib/rt/itcms/iter local.get $1 + global.get $~lib/rt/itcms/iter i32.eq if local.get $1 @@ -1411,11 +1411,11 @@ local.get $2 i32.store offset=8 local.get $2 + local.get $0 local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $0 i32.or i32.store offset=4 end @@ -1429,10 +1429,10 @@ if (result i32) i32.const 1 else + local.get $0 i32.const 1440 i32.load - local.get $0 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -1469,11 +1469,11 @@ local.get $0 i32.store offset=8 local.get $0 + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.or i32.store offset=4 local.get $2 diff --git a/tests/compiler/return-unreachable.release.wat b/tests/compiler/return-unreachable.release.wat index c1056b97a9..ef22c1a601 100644 --- a/tests/compiler/return-unreachable.release.wat +++ b/tests/compiler/return-unreachable.release.wat @@ -90,8 +90,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - global.get $~lib/rt/itcms/iter local.get $0 + global.get $~lib/rt/itcms/iter i32.eq if local.get $0 @@ -151,11 +151,11 @@ local.get $2 i32.store offset=8 local.get $2 + local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.or i32.store offset=4 end @@ -169,10 +169,10 @@ if (result i32) i32.const 1 else + local.get $1 i32.const 1536 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1344 i32.const 1408 @@ -195,23 +195,23 @@ i32.load offset=8 local.set $1 local.get $0 - local.get $2 global.get $~lib/rt/itcms/white i32.eqz i32.const 2 local.get $3 select + local.get $2 i32.or i32.store offset=4 local.get $0 local.get $1 i32.store offset=8 local.get $1 + local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $0 i32.or i32.store offset=4 local.get $2 @@ -314,37 +314,37 @@ local.get $4 i32.store offset=4 end - local.get $2 + local.get $1 + local.get $0 local.get $3 i32.const 4 i32.shl + local.get $2 i32.add i32.const 2 i32.shl - local.get $0 i32.add i32.load offset=96 - local.get $1 i32.eq if - local.get $2 + local.get $0 local.get $3 i32.const 4 i32.shl + local.get $2 i32.add i32.const 2 i32.shl - local.get $0 i32.add local.get $5 i32.store offset=96 local.get $5 i32.eqz if + local.get $0 local.get $3 i32.const 2 i32.shl - local.get $0 i32.add local.tee $1 i32.load offset=4 @@ -495,12 +495,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 local.get $1 i32.const 4 i32.add + local.get $2 i32.add - local.get $4 i32.ne if i32.const 0 @@ -561,14 +561,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 local.get $5 i32.const 4 i32.shl + local.get $2 i32.add i32.const 2 i32.shl - local.get $0 i32.add i32.load offset=96 local.set $3 @@ -584,14 +584,14 @@ local.get $1 i32.store offset=4 end - local.get $2 + local.get $0 local.get $5 i32.const 4 i32.shl + local.get $2 i32.add i32.const 2 i32.shl - local.get $0 i32.add local.get $1 i32.store offset=96 @@ -603,10 +603,10 @@ i32.shl i32.or i32.store + local.get $0 local.get $5 i32.const 2 i32.shl - local.get $0 i32.add local.tee $0 local.get $0 @@ -643,11 +643,11 @@ i32.load offset=1568 local.tee $4 if - local.get $1 local.get $4 i32.const 4 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1488 @@ -656,10 +656,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $1 i32.const 16 i32.sub + local.get $4 i32.eq if local.get $4 @@ -671,11 +671,11 @@ local.set $1 end else - local.get $1 local.get $0 i32.const 1572 i32.add - i32.lt_u + local.get $1 + i32.gt_u if i32.const 0 i32.const 1488 @@ -714,10 +714,10 @@ local.get $1 i32.const 0 i32.store offset=8 - local.get $2 local.get $1 i32.const 4 i32.add + local.get $2 i32.add local.tee $2 i32.const 2 @@ -774,10 +774,10 @@ i32.const 16 i32.lt_u if - local.get $1 local.get $0 i32.const 4 i32.shl + local.get $1 i32.add i32.const 2 i32.shl @@ -838,25 +838,25 @@ i32.and local.set $0 loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace local.get $0 + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $0 global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 - local.get $1 local.get $0 i32.load offset=4 i32.const -4 i32.and + local.get $1 i32.or i32.store offset=4 i32.const 0 @@ -913,23 +913,23 @@ i32.and local.set $0 loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace local.get $0 + global.get $~lib/rt/itcms/toSpace i32.ne if + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 - local.get $1 local.get $0 i32.load offset=4 i32.const -4 i32.and + local.get $1 i32.or i32.store offset=4 local.get $0 @@ -1085,13 +1085,13 @@ i32.shr_u else i32.const 31 + local.get $1 i32.const 1 i32.const 27 local.get $1 i32.clz i32.sub i32.shl - local.get $1 i32.add i32.const 1 i32.sub @@ -1131,10 +1131,10 @@ call $~lib/builtins/abort unreachable end + local.get $0 local.get $2 i32.const 2 i32.shl - local.get $0 i32.add i32.load offset=4 i32.const -1 @@ -1143,6 +1143,7 @@ i32.and local.tee $1 if (result i32) + local.get $0 local.get $1 i32.ctz local.get $2 @@ -1151,7 +1152,6 @@ i32.add i32.const 2 i32.shl - local.get $0 i32.add i32.load offset=96 else @@ -1165,12 +1165,12 @@ i32.and local.tee $1 if (result i32) + local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl - local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1183,6 +1183,7 @@ call $~lib/builtins/abort unreachable end + local.get $0 local.get $2 i32.ctz local.get $1 @@ -1191,7 +1192,6 @@ i32.add i32.const 2 i32.shl - local.get $0 i32.add i32.load offset=96 else @@ -1312,6 +1312,7 @@ i32.sub i32.ne i32.shl + local.get $5 i32.const 1 i32.const 27 local.get $5 @@ -1320,7 +1321,6 @@ i32.shl i32.const 1 i32.sub - local.get $5 i32.add local.get $5 local.get $5 @@ -1373,12 +1373,12 @@ unreachable end end + local.get $5 local.get $2 i32.load i32.const -4 i32.and - local.get $5 - i32.lt_u + i32.gt_u if i32.const 0 i32.const 1488 @@ -1416,16 +1416,16 @@ i32.ge_u if local.get $2 + local.get $5 local.get $3 i32.const 2 i32.and - local.get $5 i32.or i32.store - local.get $5 local.get $2 i32.const 4 i32.add + local.get $5 i32.add local.tee $3 local.get $6 @@ -1469,19 +1469,19 @@ i32.load offset=8 local.set $3 local.get $2 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 local.get $3 i32.store offset=8 local.get $3 + local.get $2 local.get $3 i32.load offset=4 i32.const 3 i32.and - local.get $2 i32.or i32.store offset=4 local.get $1 diff --git a/tests/compiler/std-wasi/process.debug.wat b/tests/compiler/std-wasi/process.debug.wat index 433bd4fc3e..ddaa4e98ca 100644 --- a/tests/compiler/std-wasi/process.debug.wat +++ b/tests/compiler/std-wasi/process.debug.wat @@ -5972,7 +5972,7 @@ local.get $9 i32.store offset=4 local.get $9 - call $~lib/array/Array<~lib/string/String>#__set + call $~lib/array/Array<~lib/string/String>#__uset end local.get $5 i32.const 1 diff --git a/tests/compiler/std-wasi/process.release.wat b/tests/compiler/std-wasi/process.release.wat index c93bace69c..b67d9c41f6 100644 --- a/tests/compiler/std-wasi/process.release.wat +++ b/tests/compiler/std-wasi/process.release.wat @@ -2967,35 +2967,7 @@ i32.store offset=8 end ) - (func $~lib/array/Array<~lib/string/String>#__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 4784 - i32.const 4608 - i32.const 130 - i32.const 22 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $3 - i32.store offset=12 - end + (func $~lib/array/Array<~lib/string/String>#__uset (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 @@ -3906,6 +3878,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -4002,10 +3975,10 @@ end i32.const 1088 i32.load - local.tee $3 + local.tee $4 i32.const 2 i32.shl - local.tee $4 + local.tee $3 i32.const 1092 i32.load i32.add @@ -4021,15 +3994,15 @@ i32.const 4 i32.add local.tee $6 - local.get $4 + local.get $3 local.get $6 i32.add call $~lib/bindings/wasi_snapshot_preview1/args_get - local.tee $4 + local.tee $3 i32.const 65535 i32.and if - local.get $4 + local.get $3 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 96 @@ -4038,13 +4011,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $4 + local.tee $7 i32.store loop $for-loop|0 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -4054,19 +4027,46 @@ i32.shl i32.add i32.load - local.tee $7 + local.tee $3 + local.get $3 local.get $5 - local.get $7 i32.add local.get $6 i32.sub call $~lib/string/String.UTF8.decodeUnsafe - local.tee $7 + local.tee $8 i32.store offset=4 - local.get $4 local.get $0 local.get $7 - call $~lib/array/Array<~lib/string/String>#__set + i32.load offset=12 + i32.ge_u + if + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 4784 + i32.const 4608 + i32.const 130 + i32.const 22 + call $~lib/wasi/index/abort + unreachable + end + local.get $7 + local.get $0 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $7 + local.get $3 + i32.store offset=12 + end + local.get $7 + local.get $0 + local.get $8 + call $~lib/array/Array<~lib/string/String>#__uset local.get $0 i32.const 1 i32.add @@ -4080,7 +4080,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $7 global.set $~lib/process/process.argv global.get $~lib/process/process.argv global.set $std-wasi/process/argv @@ -4180,7 +4180,7 @@ local.get $5 local.get $0 local.get $6 - call $~lib/array/Array<~lib/string/String>#__set + call $~lib/array/Array<~lib/string/String>#__uset local.get $0 i32.const 1 i32.add diff --git a/tests/compiler/std/map.debug.wat b/tests/compiler/std/map.debug.wat index e478badf6f..85735d5257 100644 --- a/tests/compiler/std/map.debug.wat +++ b/tests/compiler/std/map.debug.wat @@ -9,7 +9,6 @@ (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) (type $i32_i64_=>_none (func (param i32 i64))) - (type $i32_i32_i64_=>_none (func (param i32 i32 i64))) (type $i32_f32_i32_=>_i32 (func (param i32 f32 i32) (result i32))) (type $i32_f32_=>_i32 (func (param i32 f32) (result i32))) (type $i32_f32_=>_none (func (param i32 f32))) @@ -18,14 +17,15 @@ (type $i32_f64_=>_none (func (param i32 f64))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i64_=>_i32 (func (param i64) (result i32))) + (type $i32_i32_i64_=>_none (func (param i32 i32 i64))) (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) - (type $i32_i32_f32_=>_none (func (param i32 i32 f32))) - (type $i32_i32_f64_=>_none (func (param i32 i32 f64))) (type $i32_i64_i64_=>_i32 (func (param i32 i64 i64) (result i32))) (type $none_=>_i32 (func (result i32))) (type $f32_=>_i32 (func (param f32) (result i32))) + (type $i32_i32_f32_=>_none (func (param i32 i32 f32))) (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) (type $f64_=>_i32 (func (param f64) (result i32))) + (type $i32_i32_f64_=>_none (func (param i32 i32 f64))) (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) (type $i32_f32_f32_=>_i32 (func (param i32 f32 f32) (result i32))) (type $i32_f64_f64_=>_i32 (func (param i32 f64 f64) (result i32))) @@ -2575,6 +2575,18 @@ local.get $1 i32.store offset=12 ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + local.get $2 + i32.store8 + i32.const 0 + drop + ) (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -2711,53 +2723,6 @@ i32.store offset=8 end ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 0 - i32.shl - i32.add - local.get $2 - i32.store8 - i32.const 0 - drop - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 704 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 0 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -2804,41 +2769,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 704 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -4427,41 +4357,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 704 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 0 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -5724,41 +5619,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 704 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 1 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -7011,41 +6871,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 704 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 1 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -8913,41 +8738,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 704 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -10199,41 +9989,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 704 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -11493,41 +11248,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 704 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -12771,41 +12491,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 704 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -14066,41 +13751,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f64) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 704 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -16163,7 +15813,7 @@ local.get $8 local.get $7 i32.load8_s - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -16335,7 +15985,7 @@ local.get $8 local.get $7 i32.load offset=4 - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -17032,7 +16682,7 @@ local.get $8 local.get $7 i32.load8_u - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -17114,7 +16764,7 @@ local.get $8 local.get $7 i32.load offset=4 - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -17636,7 +17286,7 @@ local.get $8 local.get $7 i32.load16_s - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -17718,7 +17368,7 @@ local.get $8 local.get $7 i32.load offset=4 - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -18240,7 +17890,7 @@ local.get $8 local.get $7 i32.load16_u - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -18322,7 +17972,7 @@ local.get $8 local.get $7 i32.load offset=4 - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -18579,7 +18229,7 @@ local.get $8 local.get $7 i32.load - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -18661,7 +18311,7 @@ local.get $8 local.get $7 i32.load offset=4 - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -19008,7 +18658,7 @@ local.get $8 local.get $7 i32.load - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -19090,7 +18740,7 @@ local.get $8 local.get $7 i32.load offset=4 - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -19612,7 +19262,7 @@ local.get $8 local.get $7 i64.load - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -19694,7 +19344,7 @@ local.get $8 local.get $7 i32.load offset=8 - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -20216,7 +19866,7 @@ local.get $8 local.get $7 i64.load - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -20298,7 +19948,7 @@ local.get $8 local.get $7 i32.load offset=8 - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -20820,7 +20470,7 @@ local.get $8 local.get $7 f32.load - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -20902,7 +20552,7 @@ local.get $8 local.get $7 i32.load offset=4 - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -21424,7 +21074,7 @@ local.get $8 local.get $7 f64.load - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -21506,7 +21156,7 @@ local.get $8 local.get $7 i32.load offset=8 - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 diff --git a/tests/compiler/std/map.release.wat b/tests/compiler/std/map.release.wat index 3491f4a96e..f65d298f8a 100644 --- a/tests/compiler/std/map.release.wat +++ b/tests/compiler/std/map.release.wat @@ -1,17 +1,16 @@ (module (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_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_=>_none (func (param i32))) (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) (type $i32_i64_=>_none (func (param i32 i64))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) - (type $i32_i32_i64_=>_none (func (param i32 i32 i64))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_f32_=>_i32 (func (param i32 f32) (result i32))) (type $i32_f32_=>_none (func (param i32 f32))) (type $i32_f64_=>_none (func (param i32 f64))) @@ -1775,13 +1774,12 @@ local.get $0 i32.load offset=4 ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) (local $4 i32) - (local $5 i32) local.get $1 local.get $0 i32.load offset=8 - local.tee $5 local.get $2 i32.shr_u i32.gt_u @@ -1799,170 +1797,73 @@ call $~lib/builtins/abort unreachable end - local.get $0 - i32.load - local.set $4 - local.get $1 - i32.const 8 - local.get $1 - i32.const 8 - i32.gt_u - select - local.get $2 - i32.shl - local.set $1 - local.get $3 - if - local.get $5 - i32.const 1 - i32.shl - local.tee $2 - i32.const 1073741820 - local.get $2 - i32.const 1073741820 - i32.lt_u - select - local.tee $2 + block $__inlined_func$~lib/rt/itcms/__renew local.get $1 + i32.const 8 local.get $1 - local.get $2 - i32.lt_u + i32.const 8 + i32.gt_u select - local.set $1 - end - block $__inlined_func$~lib/rt/itcms/__renew - local.get $4 + local.get $2 + i32.shl + local.tee $3 + local.get $0 + i32.load + local.tee $2 i32.const 20 i32.sub - local.tee $3 + local.tee $4 i32.load i32.const -4 i32.and i32.const 16 i32.sub - local.get $1 - i32.ge_u + i32.le_u if + local.get $4 local.get $3 - local.get $1 i32.store offset=16 - local.get $4 - local.set $2 + local.get $2 + local.set $1 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $1 local.get $3 + local.get $4 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $2 - local.get $4 - local.get $1 + local.tee $1 + local.get $2 local.get $3 + local.get $4 i32.load offset=16 - local.tee $3 - local.get $1 + local.tee $4 local.get $3 + local.get $4 i32.lt_u select memory.copy end + local.get $1 local.get $2 - local.get $4 i32.ne if local.get $0 - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 if local.get $0 - local.get $2 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end end local.get $0 - local.get $1 - i32.store offset=8 - end - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1728 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 0 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $3 - i32.store offset=12 - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.add - local.get $2 - i32.store8 - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1728 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 local.get $3 - i32.store offset=12 + i32.store offset=8 end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -2949,10 +2850,12 @@ i32.eqz if local.get $12 + i32.load offset=4 local.get $0 + i32.add local.get $5 i32.load8_s - call $~lib/array/Array#__set + i32.store8 local.get $0 i32.const 1 i32.add @@ -2968,7 +2871,6 @@ local.get $12 local.get $0 i32.const 0 - i32.const 0 call $~lib/array/ensureCapacity local.get $12 local.get $0 @@ -5115,10 +5017,12 @@ i32.eqz if local.get $12 + i32.load offset=4 local.get $0 + i32.add local.get $5 i32.load8_u - call $~lib/array/Array#__set + i32.store8 local.get $0 i32.const 1 i32.add @@ -5134,7 +5038,6 @@ local.get $12 local.get $0 i32.const 0 - i32.const 0 call $~lib/array/ensureCapacity local.get $12 local.get $0 @@ -6512,45 +6415,6 @@ 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 1248 - i32.const 1728 - i32.const 130 - 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 - i32.const 1 - call $~lib/array/ensureCapacity - 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/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -7314,10 +7178,14 @@ i32.eqz if local.get $12 + i32.load offset=4 local.get $0 + i32.const 1 + i32.shl + i32.add local.get $5 i32.load16_s - call $~lib/array/Array#__set + i32.store16 local.get $0 i32.const 1 i32.add @@ -7333,7 +7201,6 @@ local.get $12 local.get $0 i32.const 1 - i32.const 0 call $~lib/array/ensureCapacity local.get $12 local.get $0 @@ -9484,10 +9351,14 @@ i32.eqz if local.get $12 + i32.load offset=4 local.get $0 + i32.const 1 + i32.shl + i32.add local.get $5 i32.load16_u - call $~lib/array/Array#__set + i32.store16 local.get $0 i32.const 1 i32.add @@ -9503,7 +9374,6 @@ local.get $12 local.get $0 i32.const 1 - i32.const 0 call $~lib/array/ensureCapacity local.get $12 local.get $0 @@ -11317,10 +11187,14 @@ i32.eqz if local.get $6 + i32.load offset=4 local.get $0 + i32.const 2 + i32.shl + i32.add local.get $7 i32.load - call $~lib/array/Array#__set + i32.store local.get $0 i32.const 1 i32.add @@ -11336,7 +11210,6 @@ local.get $6 local.get $0 i32.const 2 - i32.const 0 call $~lib/array/ensureCapacity local.get $6 local.get $0 @@ -13043,10 +12916,14 @@ i32.eqz if local.get $12 + i32.load offset=4 local.get $0 + i32.const 2 + i32.shl + i32.add local.get $5 i32.load - call $~lib/array/Array#__set + i32.store local.get $0 i32.const 1 i32.add @@ -13062,7 +12939,6 @@ local.get $12 local.get $0 i32.const 2 - i32.const 0 call $~lib/array/ensureCapacity local.get $12 local.get $0 @@ -14516,45 +14392,6 @@ 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 1248 - i32.const 1728 - i32.const 130 - 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 - i32.const 1 - call $~lib/array/ensureCapacity - 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/map/Map#delete (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) @@ -15092,10 +14929,14 @@ i32.eqz if local.get $10 + i32.load offset=4 local.get $0 + i32.const 3 + i32.shl + i32.add local.get $4 i64.load - call $~lib/array/Array#__set + i64.store local.get $0 i32.const 1 i32.add @@ -15111,7 +14952,6 @@ local.get $10 local.get $0 i32.const 3 - i32.const 0 call $~lib/array/ensureCapacity local.get $10 local.get $0 @@ -16641,10 +16481,14 @@ i32.eqz if local.get $10 + i32.load offset=4 local.get $0 + i32.const 3 + i32.shl + i32.add local.get $4 i64.load - call $~lib/array/Array#__set + i64.store local.get $0 i32.const 1 i32.add @@ -16660,7 +16504,6 @@ local.get $10 local.get $0 i32.const 3 - i32.const 0 call $~lib/array/ensureCapacity local.get $10 local.get $0 @@ -17709,8 +17552,8 @@ (func $std/map/testNumeric (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 f32) + (local $2 f32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -17719,8 +17562,8 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i32) - (local $13 f32) + (local $12 f32) + (local $13 i32) (local $14 i32) (local $15 i32) (local $16 i32) @@ -17735,11 +17578,11 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17755,59 +17598,59 @@ i32.const 24 i32.const 26 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $9 i32.store - local.get $10 + local.get $9 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $4 i32.store local.get $4 if - local.get $10 + local.get $9 local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 + local.get $9 i32.const 3 i32.store offset=4 - local.get $10 + local.get $9 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $4 i32.store offset=8 local.get $4 if - local.get $10 + local.get $9 local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 + local.get $9 i32.const 4 i32.store offset=12 - local.get $10 + local.get $9 i32.const 0 i32.store offset=16 - local.get $10 + local.get $9 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $10 + local.get $1 + local.get $9 i32.store loop $for-loop|0 - local.get $3 + local.get $2 f32.const 100 f32.lt if - local.get $10 + local.get $9 i32.load - local.get $10 + local.get $9 i32.load offset=4 - local.get $3 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -17817,22 +17660,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -17841,12 +17684,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 local.tee $4 i32.const 1 @@ -17854,23 +17697,23 @@ if (result i32) i32.const 0 else - local.get $0 + local.get $1 f32.load - local.get $3 + local.get $2 f32.eq end br_if $__inlined_func$~lib/map/Map#find local.get $4 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|0 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -17879,18 +17722,18 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $3 - local.get $3 + local.get $9 + local.get $2 + local.get $2 i32.trunc_sat_f32_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $10 + local.get $9 i32.load - local.get $10 + local.get $9 i32.load offset=4 - local.get $3 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -17900,22 +17743,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -17924,12 +17767,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 local.tee $4 i32.const 1 @@ -17937,23 +17780,23 @@ if (result i32) i32.const 0 else - local.get $0 + local.get $1 f32.load - local.get $3 + local.get $2 f32.eq end br_if $__inlined_func$~lib/map/Map#find1 local.get $4 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|02 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -17963,10 +17806,10 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $3 + local.get $9 + local.get $2 call $~lib/map/Map#get - local.get $3 + local.get $2 i32.trunc_sat_f32_s i32.const 10 i32.add @@ -17979,14 +17822,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 f32.const 1 f32.add - local.set $3 + local.set $2 br $for-loop|0 end end - local.get $10 + local.get $9 i32.load offset=20 i32.const 100 i32.ne @@ -17999,17 +17842,17 @@ unreachable end f32.const 0 - local.set $3 + local.set $2 loop $for-loop|1 - local.get $3 + local.get $2 f32.const 100 f32.lt if - local.get $10 + local.get $9 i32.load - local.get $10 + local.get $9 i32.load offset=4 - local.get $3 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -18019,22 +17862,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -18043,12 +17886,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 local.tee $4 i32.const 1 @@ -18056,23 +17899,23 @@ if (result i32) i32.const 0 else - local.get $0 + local.get $1 f32.load - local.get $3 + local.get $2 f32.eq end br_if $__inlined_func$~lib/map/Map#find4 local.get $4 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|05 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -18082,10 +17925,10 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $3 + local.get $9 + local.get $2 call $~lib/map/Map#get - local.get $3 + local.get $2 i32.trunc_sat_f32_s i32.const 10 i32.add @@ -18098,18 +17941,18 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $3 - local.get $3 + local.get $9 + local.get $2 + local.get $2 i32.trunc_sat_f32_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $10 + local.get $9 i32.load - local.get $10 + local.get $9 i32.load offset=4 - local.get $3 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -18119,22 +17962,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -18143,12 +17986,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 local.tee $4 i32.const 1 @@ -18156,23 +17999,23 @@ if (result i32) i32.const 0 else - local.get $0 + local.get $1 f32.load - local.get $3 + local.get $2 f32.eq end br_if $__inlined_func$~lib/map/Map#find7 local.get $4 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|08 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -18182,10 +18025,10 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $3 + local.get $9 + local.get $2 call $~lib/map/Map#get - local.get $3 + local.get $2 i32.trunc_sat_f32_s i32.const 20 i32.add @@ -18198,14 +18041,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 f32.const 1 f32.add - local.set $3 + local.set $2 br $for-loop|1 end end - local.get $10 + local.get $9 i32.load offset=20 i32.const 100 i32.ne @@ -18218,7 +18061,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -18227,16 +18070,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $4 i32.const 0 i32.store - local.get $10 + local.get $9 i32.load offset=8 local.set $5 - local.get $10 + local.get $9 i32.load offset=16 local.set $6 - local.get $0 + local.get $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -18245,25 +18088,25 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $8 i64.const 0 i64.store - local.get $7 + local.get $8 i32.const 16 i32.const 27 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $10 i32.store - local.get $11 + local.get $10 i32.const 0 i32.store - local.get $11 + local.get $10 i32.const 0 i32.store offset=4 - local.get $11 + local.get $10 i32.const 0 i32.store offset=8 - local.get $11 + local.get $10 i32.const 0 i32.store offset=12 local.get $6 @@ -18286,123 +18129,91 @@ select i32.const 2 i32.shl - local.tee $7 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $11 i32.store offset=4 + local.get $10 local.get $11 - local.get $8 i32.store - local.get $8 + local.get $11 if + local.get $10 local.get $11 - local.get $8 call $byn-split-outlined-A$~lib/rt/itcms/__link end + local.get $10 local.get $11 - local.get $8 i32.store offset=4 - local.get $11 - local.get $7 + local.get $10 + local.get $8 i32.store offset=8 - local.get $11 + local.get $10 local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $11 + local.get $4 + local.get $10 i32.store loop $for-loop|02 - local.get $2 + local.get $3 local.get $6 i32.lt_s if local.get $5 - local.get $2 + local.get $3 i32.const 12 i32.mul i32.add - local.tee $0 + local.tee $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $0 - f32.load - local.set $3 - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.get $11 - i32.load offset=12 - i32.ge_u - if - local.get $0 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1728 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $0 - i32.const 1 - i32.add - local.tee $7 - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $11 - local.get $7 - i32.store offset=12 - end - local.get $11 + local.get $10 i32.load offset=4 local.get $0 i32.const 2 i32.shl i32.add - local.get $3 + local.get $4 + f32.load f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|02 end end - local.get $11 - local.get $1 + local.get $10 + local.get $0 i32.const 2 - i32.const 0 call $~lib/array/ensureCapacity - local.get $11 - local.get $1 + local.get $10 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $11 + local.get $1 + local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $9 call $~lib/map/Map#values - local.tee $6 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -18421,62 +18232,60 @@ i32.const 24 i32.const 28 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $11 i32.store - local.get $12 + local.get $11 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store local.get $1 if - local.get $12 + local.get $11 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $11 i32.const 3 i32.store offset=4 - local.get $12 + local.get $11 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store offset=8 local.get $1 if - local.get $12 + local.get $11 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $11 i32.const 4 i32.store offset=12 - local.get $12 + local.get $11 i32.const 0 i32.store offset=16 - local.get $12 + local.get $11 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $8 + local.tee $6 i32.store offset=16 - i32.const 0 - local.set $1 loop $for-loop|2 - local.get $1 - local.get $11 + local.get $7 + local.get $10 i32.load offset=12 i32.lt_s if - local.get $1 - local.get $11 + local.get $7 + local.get $10 i32.load offset=12 i32.ge_u if @@ -18487,23 +18296,23 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $10 i32.load offset=4 - local.get $1 + local.get $7 i32.const 2 i32.shl i32.add f32.load - local.set $3 - local.get $6 - local.get $1 + local.set $2 + local.get $4 + local.get $7 call $~lib/array/Array#__get - local.set $7 - local.get $10 + local.set $5 + local.get $9 i32.load - local.get $10 + local.get $9 i32.load offset=4 - local.get $3 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -18544,7 +18353,7 @@ if local.get $0 i32.load offset=8 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) @@ -18552,11 +18361,11 @@ else local.get $0 f32.load - local.get $3 + local.get $2 f32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $2 + local.get $1 i32.const -2 i32.and local.set $0 @@ -18576,15 +18385,15 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $9 i32.load - local.get $10 + local.get $9 i32.load offset=4 - local.get $7 + local.get $5 i32.const 20 i32.sub f32.convert_i32_s - local.tee $13 + local.tee $12 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -18625,7 +18434,7 @@ if local.get $0 i32.load offset=8 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) @@ -18633,11 +18442,11 @@ else local.get $0 f32.load - local.get $13 + local.get $12 f32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $2 + local.get $1 i32.const -2 i32.and local.set $0 @@ -18668,9 +18477,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $12 + local.get $11 i32.load - local.get $3 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -18699,58 +18508,58 @@ i32.shr_u local.get $0 i32.xor - local.tee $5 - local.get $12 + local.tee $3 + local.get $11 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $0 block $__inlined_func$~lib/map/Map#find15 loop $while-continue|016 - local.get $2 + local.get $0 if - local.get $2 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $0 f32.load - local.get $3 + local.get $2 f32.eq end br_if $__inlined_func$~lib/map/Map#find15 - local.get $0 + local.get $1 i32.const -2 i32.and - local.set $2 + local.set $0 br $while-continue|016 end end i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if + local.get $0 local.get $2 - local.get $3 f32.store offset=4 else - local.get $12 + local.get $11 i32.load offset=16 - local.get $12 + local.get $11 i32.load offset=12 i32.eq if - local.get $12 + local.get $11 i32.load offset=20 - local.get $12 + local.get $11 i32.load offset=12 i32.const 3 i32.mul @@ -18758,17 +18567,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $12 + local.get $11 i32.load offset=4 else - local.get $12 + local.get $11 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $14 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -18782,14 +18591,14 @@ i64.const 0 i64.store local.get $0 - local.get $14 + local.get $13 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $15 + local.tee $14 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -18797,47 +18606,47 @@ i32.shl i32.const 3 i32.div_s - local.tee $4 + local.tee $15 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $12 + local.get $11 i32.load offset=8 - local.tee $9 - local.get $12 + local.tee $8 + local.get $11 i32.load offset=16 i32.const 12 i32.mul i32.add local.set $16 - local.get $2 + local.get $1 local.set $0 loop $while-continue|00 - local.get $9 + local.get $8 local.get $16 i32.ne if - local.get $9 + local.get $8 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $9 + local.get $8 f32.load - local.tee $13 + local.tee $12 f32.store local.get $0 - local.get $9 + local.get $8 f32.load offset=4 f32.store offset=4 local.get $0 - local.get $15 local.get $14 local.get $13 + local.get $12 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -18881,39 +18690,39 @@ i32.add local.set $0 end - local.get $9 + local.get $8 i32.const 12 i32.add - local.set $9 + local.set $8 br $while-continue|00 end end - local.get $12 - local.get $15 + local.get $11 + local.get $14 i32.store - local.get $15 + local.get $14 if - local.get $12 - local.get $15 + local.get $11 + local.get $14 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 - local.get $14 + local.get $11 + local.get $13 i32.store offset=4 - local.get $12 - local.get $2 + local.get $11 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 if - local.get $12 - local.get $2 + local.get $11 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 - local.get $4 + local.get $11 + local.get $15 i32.store offset=12 - local.get $12 - local.get $12 + local.get $11 + local.get $11 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -18922,48 +18731,48 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 i32.load offset=8 local.tee $0 i32.store - local.get $12 - local.get $12 + local.get $11 + local.get $11 i32.load offset=16 - local.tee $2 + local.tee $1 i32.const 1 i32.add i32.store offset=16 local.get $0 - local.get $2 + local.get $1 i32.const 12 i32.mul i32.add local.tee $0 - local.get $3 + local.get $2 f32.store local.get $0 - local.get $3 + local.get $2 f32.store offset=4 - local.get $12 - local.get $12 + local.get $11 + local.get $11 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $12 + local.get $11 i32.load - local.get $5 - local.get $12 + local.get $3 + local.get $11 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $1 i32.load i32.store offset=8 - local.get $2 + local.get $1 local.get $0 i32.store end @@ -18971,21 +18780,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $7 + local.get $6 + local.get $5 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $1 + local.get $7 i32.const 1 i32.add - local.set $1 + local.set $7 br $for-loop|2 end end - local.get $12 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -18997,7 +18806,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -19010,17 +18819,17 @@ unreachable end f32.const 0 - local.set $3 + local.set $2 loop $for-loop|3 - local.get $3 + local.get $2 f32.const 50 f32.lt if - local.get $10 + local.get $9 i32.load - local.get $10 + local.get $9 i32.load offset=4 - local.get $3 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19054,36 +18863,36 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $1 f32.load - local.get $3 + local.get $2 f32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $1 + local.get $0 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|019 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -19093,10 +18902,10 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $3 + local.get $9 + local.get $2 call $~lib/map/Map#get - local.get $3 + local.get $2 i32.trunc_sat_f32_s i32.const 20 i32.add @@ -19109,14 +18918,14 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $3 + local.get $9 + local.get $2 call $~lib/map/Map#delete - local.get $10 + local.get $9 i32.load - local.get $10 + local.get $9 i32.load offset=4 - local.get $3 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19150,36 +18959,36 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $1 f32.load - local.get $3 + local.get $2 f32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $1 + local.get $0 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|022 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -19188,14 +18997,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 f32.const 1 f32.add - local.set $3 + local.set $2 br $for-loop|3 end end - local.get $10 + local.get $9 i32.load offset=20 i32.const 50 i32.ne @@ -19208,17 +19017,17 @@ unreachable end f32.const 0 - local.set $3 + local.set $2 loop $for-loop|4 - local.get $3 + local.get $2 f32.const 50 f32.lt if - local.get $10 + local.get $9 i32.load - local.get $10 + local.get $9 i32.load offset=4 - local.get $3 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19252,36 +19061,36 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $1 f32.load - local.get $3 + local.get $2 f32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $1 + local.get $0 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|025 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -19290,18 +19099,18 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $3 - local.get $3 + local.get $9 + local.get $2 + local.get $2 i32.trunc_sat_f32_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $10 + local.get $9 i32.load - local.get $10 + local.get $9 i32.load offset=4 - local.get $3 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19335,36 +19144,36 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $1 f32.load - local.get $3 + local.get $2 f32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $1 + local.get $0 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|028 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -19374,14 +19183,14 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $3 + local.get $9 + local.get $2 call $~lib/map/Map#delete - local.get $10 + local.get $9 i32.load - local.get $10 + local.get $9 i32.load offset=4 - local.get $3 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19415,36 +19224,36 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $1 f32.load - local.get $3 + local.get $2 f32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $1 + local.get $0 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|031 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -19453,14 +19262,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 f32.const 1 f32.add - local.set $3 + local.set $2 br $for-loop|4 end end - local.get $10 + local.get $9 i32.load offset=20 i32.const 50 i32.ne @@ -19472,9 +19281,9 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $9 call $~lib/map/Map#clear - local.get $10 + local.get $9 i32.load offset=20 if i32.const 0 @@ -20001,11 +19810,11 @@ (func $std/map/testNumeric (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) + (local $2 i64) + (local $3 f64) (local $4 i32) - (local $5 i64) - (local $6 f64) + (local $5 i32) + (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) @@ -20028,11 +19837,11 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 i32.const 0 i32.const 20 memory.fill - local.get $1 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -20041,63 +19850,63 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $5 i32.const 0 i32.store - local.get $0 + local.get $5 i32.const 24 i32.const 29 call $~lib/rt/itcms/__new - local.tee $18 + local.tee $10 i32.store - local.get $18 + local.get $10 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $5 i32.store - local.get $0 + local.get $5 if - local.get $18 - local.get $0 + local.get $10 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $18 + local.get $10 i32.const 3 i32.store offset=4 - local.get $18 + local.get $10 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $5 i32.store offset=8 - local.get $0 + local.get $5 if - local.get $18 - local.get $0 + local.get $10 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $18 + local.get $10 i32.const 4 i32.store offset=12 - local.get $18 + local.get $10 i32.const 0 i32.store offset=16 - local.get $18 + local.get $10 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $18 + local.get $4 + local.get $10 i32.store loop $for-loop|0 - local.get $6 + local.get $3 f64.const 100 f64.lt if - local.get $18 - local.get $6 + local.get $10 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -20107,15 +19916,15 @@ call $~lib/builtins/abort unreachable end - local.get $18 - local.get $6 - local.get $6 + local.get $10 + local.get $3 + local.get $3 i32.trunc_sat_f64_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $18 - local.get $6 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -20126,10 +19935,10 @@ call $~lib/builtins/abort unreachable end - local.get $18 - local.get $6 + local.get $10 + local.get $3 call $~lib/map/Map#get - local.get $6 + local.get $3 i32.trunc_sat_f64_s i32.const 10 i32.add @@ -20142,14 +19951,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 f64.const 1 f64.add - local.set $6 + local.set $3 br $for-loop|0 end end - local.get $18 + local.get $10 i32.load offset=20 i32.const 100 i32.ne @@ -20162,14 +19971,14 @@ unreachable end f64.const 0 - local.set $6 + local.set $3 loop $for-loop|1 - local.get $6 + local.get $3 f64.const 100 f64.lt if - local.get $18 - local.get $6 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -20180,10 +19989,10 @@ call $~lib/builtins/abort unreachable end - local.get $18 - local.get $6 + local.get $10 + local.get $3 call $~lib/map/Map#get - local.get $6 + local.get $3 i32.trunc_sat_f64_s i32.const 10 i32.add @@ -20196,15 +20005,15 @@ call $~lib/builtins/abort unreachable end - local.get $18 - local.get $6 - local.get $6 + local.get $10 + local.get $3 + local.get $3 i32.trunc_sat_f64_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $18 - local.get $6 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -20215,10 +20024,10 @@ call $~lib/builtins/abort unreachable end - local.get $18 - local.get $6 + local.get $10 + local.get $3 call $~lib/map/Map#get - local.get $6 + local.get $3 i32.trunc_sat_f64_s i32.const 20 i32.add @@ -20231,14 +20040,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 f64.const 1 f64.add - local.set $6 + local.set $3 br $for-loop|1 end end - local.get $18 + local.get $10 i32.load offset=20 i32.const 100 i32.ne @@ -20251,7 +20060,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -20260,16 +20069,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $5 i32.const 0 i32.store - local.get $18 + local.get $10 i32.load offset=8 - local.set $7 - local.get $18 + local.set $6 + local.get $10 i32.load offset=16 - local.set $4 - local.get $8 + local.set $7 + local.get $5 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -20278,28 +20087,28 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $9 i64.const 0 i64.store - local.get $0 + local.get $9 i32.const 16 i32.const 30 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $11 i32.store - local.get $2 + local.get $11 i32.const 0 i32.store - local.get $2 + local.get $11 i32.const 0 i32.store offset=4 - local.get $2 + local.get $11 i32.const 0 i32.store offset=8 - local.get $2 + local.get $11 i32.const 0 i32.store offset=12 - local.get $4 + local.get $7 i32.const 134217727 i32.gt_u if @@ -20311,131 +20120,99 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.const 8 - local.get $4 + local.get $7 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $1 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $12 i32.store offset=4 - local.get $2 - local.get $0 + local.get $11 + local.get $12 i32.store - local.get $0 + local.get $12 if - local.get $2 - local.get $0 + local.get $11 + local.get $12 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 - local.get $0 + local.get $11 + local.get $12 i32.store offset=4 - local.get $2 - local.get $1 + local.get $11 + local.get $9 i32.store offset=8 - local.get $2 - local.get $4 + local.get $11 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $2 + local.get $5 + local.get $11 i32.store loop $for-loop|02 - local.get $4 - local.get $11 - i32.gt_s + local.get $1 + local.get $7 + i32.lt_s if - local.get $7 - local.get $11 + local.get $6 + local.get $1 i32.const 4 i32.shl i32.add - local.tee $0 + local.tee $5 i32.load offset=12 i32.const 1 i32.and i32.eqz if - local.get $0 - f64.load - local.set $6 - local.get $3 - local.tee $0 - i32.const 1 - i32.add - local.set $3 - local.get $0 - local.get $2 - i32.load offset=12 - i32.ge_u - if - local.get $0 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1728 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $0 - i32.const 1 - i32.add - local.tee $1 - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $2 - local.get $1 - i32.store offset=12 - end - local.get $2 + local.get $11 i32.load offset=4 local.get $0 i32.const 3 i32.shl i32.add - local.get $6 + local.get $5 + f64.load f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $11 + local.get $1 i32.const 1 i32.add - local.set $11 + local.set $1 br $for-loop|02 end end - local.get $2 - local.get $3 + local.get $11 + local.get $0 i32.const 3 - i32.const 0 call $~lib/array/ensureCapacity - local.get $2 - local.get $3 + local.get $11 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 - local.get $2 + local.get $4 + local.get $11 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $18 + local.get $10 call $~lib/map/Map#values - local.tee $10 + local.tee $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -20447,69 +20224,67 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 24 i32.const 31 call $~lib/rt/itcms/__new - local.tee $14 + local.tee $12 i32.store - local.get $14 + local.get $12 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 if - local.get $14 - local.get $0 + local.get $12 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $14 + local.get $12 i32.const 3 i32.store offset=4 - local.get $14 + local.get $12 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 if - local.get $14 - local.get $0 + local.get $12 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $14 + local.get $12 i32.const 4 i32.store offset=12 - local.get $14 + local.get $12 i32.const 0 i32.store offset=16 - local.get $14 + local.get $12 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $14 + local.get $12 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $9 + local.tee $7 i32.store offset=16 - i32.const 0 - local.set $3 loop $for-loop|2 - local.get $3 - local.get $2 + local.get $8 + local.get $11 i32.load offset=12 i32.lt_s if - local.get $3 - local.get $2 + local.get $8 + local.get $11 i32.load offset=12 i32.ge_u if @@ -20520,19 +20295,19 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $11 i32.load offset=4 - local.get $3 + local.get $8 i32.const 3 i32.shl i32.add f64.load local.set $13 - local.get $10 - local.get $3 + local.get $5 + local.get $8 call $~lib/array/Array#__get - local.set $8 - local.get $18 + local.set $6 + local.get $10 local.get $13 call $~lib/map/Map#has i32.eqz @@ -20544,8 +20319,8 @@ call $~lib/builtins/abort unreachable end - local.get $18 - local.get $8 + local.get $10 + local.get $6 i32.const 20 i32.sub f64.convert_i32_s @@ -20570,11 +20345,11 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $14 + local.get $12 i32.load local.get $13 i64.reinterpret_f64 - local.tee $5 + local.tee $2 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -20584,7 +20359,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $5 + local.get $2 i64.const 32 i64.shr_u i32.wrap_i64 @@ -20614,58 +20389,58 @@ i32.const 16 i32.shr_u i32.xor - local.tee $7 - local.get $14 + local.tee $4 + local.get $12 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $11 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $11 + local.get $0 if - local.get $11 + local.get $0 i32.load offset=16 - local.tee $0 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $11 + local.get $0 f64.load local.get $13 f64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $0 + local.get $1 i32.const -2 i32.and - local.set $11 + local.set $0 br $while-continue|0 end end i32.const 0 - local.set $11 + local.set $0 end - local.get $11 + local.get $0 if - local.get $11 + local.get $0 local.get $13 f64.store offset=8 else - local.get $14 + local.get $12 i32.load offset=16 - local.get $14 + local.get $12 i32.load offset=12 i32.eq if - local.get $14 + local.get $12 i32.load offset=20 - local.get $14 + local.get $12 i32.load offset=12 i32.const 3 i32.mul @@ -20673,17 +20448,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $14 + local.get $12 i32.load offset=4 else - local.get $14 + local.get $12 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $12 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -20697,14 +20472,14 @@ i64.const 0 i64.store local.get $0 - local.get $12 + local.get $14 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 + local.tee $15 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -20718,43 +20493,43 @@ call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store offset=4 - local.get $14 + local.get $12 i32.load offset=8 - local.tee $17 - local.get $14 + local.tee $9 + local.get $12 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $15 + local.set $17 local.get $1 local.set $0 loop $while-continue|00 - local.get $15 + local.get $9 local.get $17 i32.ne if - local.get $17 + local.get $9 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $17 + local.get $9 f64.load - local.tee $6 + local.tee $3 f64.store local.get $0 - local.get $17 + local.get $9 f64.load offset=8 f64.store offset=8 local.get $0 - local.get $11 - local.get $12 - local.get $6 + local.get $15 + local.get $14 + local.get $3 i64.reinterpret_f64 - local.tee $5 + local.tee $2 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -20764,7 +20539,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $5 + local.get $2 i64.const 32 i64.shr_u i32.wrap_i64 @@ -20775,22 +20550,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $18 + local.get $18 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $18 + local.get $18 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $18 + local.get $18 i32.const 16 i32.shr_u i32.xor @@ -20798,10 +20573,10 @@ i32.const 2 i32.shl i32.add - local.tee $4 + local.tee $18 i32.load i32.store offset=16 - local.get $4 + local.get $18 local.get $0 i32.store local.get $0 @@ -20809,39 +20584,39 @@ i32.add local.set $0 end - local.get $17 + local.get $9 i32.const 24 i32.add - local.set $17 + local.set $9 br $while-continue|00 end end - local.get $14 - local.get $11 + local.get $12 + local.get $15 i32.store - local.get $11 + local.get $15 if - local.get $14 - local.get $11 + local.get $12 + local.get $15 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $14 local.get $12 - i32.store offset=4 local.get $14 + i32.store offset=4 + local.get $12 local.get $1 i32.store offset=8 local.get $1 if - local.get $14 + local.get $12 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $14 + local.get $12 local.get $16 i32.store offset=12 - local.get $14 - local.get $14 + local.get $12 + local.get $12 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -20850,70 +20625,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $12 i32.load offset=8 - local.tee $1 + local.tee $0 i32.store - local.get $14 - local.get $14 + local.get $12 + local.get $12 i32.load offset=16 - local.tee $0 + local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $1 local.get $0 + local.get $1 i32.const 24 i32.mul i32.add - local.tee $1 + local.tee $0 local.get $13 f64.store - local.get $1 + local.get $0 local.get $13 f64.store offset=8 - local.get $14 - local.get $14 + local.get $12 + local.get $12 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $1 - local.get $14 + local.get $0 + local.get $12 i32.load - local.get $7 - local.get $14 + local.get $4 + local.get $12 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add - local.tee $0 + local.tee $1 i32.load i32.store offset=16 - local.get $0 local.get $1 + local.get $0 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 - local.get $8 + local.get $7 + local.get $6 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $3 + local.get $8 i32.const 1 i32.add - local.set $3 + local.set $8 br $for-loop|2 end end - local.get $14 + local.get $12 i32.load offset=20 i32.const 100 i32.ne @@ -20925,7 +20700,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $7 i32.load offset=20 i32.const 100 i32.ne @@ -20938,14 +20713,14 @@ unreachable end f64.const 0 - local.set $6 + local.set $3 loop $for-loop|3 - local.get $6 + local.get $3 f64.const 50 f64.lt if - local.get $18 - local.get $6 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -20956,10 +20731,10 @@ call $~lib/builtins/abort unreachable end - local.get $18 - local.get $6 + local.get $10 + local.get $3 call $~lib/map/Map#get - local.get $6 + local.get $3 i32.trunc_sat_f64_s i32.const 20 i32.add @@ -20972,11 +20747,11 @@ call $~lib/builtins/abort unreachable end - local.get $18 - local.get $6 + local.get $10 + local.get $3 call $~lib/map/Map#delete - local.get $18 - local.get $6 + local.get $10 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -20986,14 +20761,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 f64.const 1 f64.add - local.set $6 + local.set $3 br $for-loop|3 end end - local.get $18 + local.get $10 i32.load offset=20 i32.const 50 i32.ne @@ -21006,14 +20781,14 @@ unreachable end f64.const 0 - local.set $6 + local.set $3 loop $for-loop|4 - local.get $6 + local.get $3 f64.const 50 f64.lt if - local.get $18 - local.get $6 + local.get $10 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -21023,15 +20798,15 @@ call $~lib/builtins/abort unreachable end - local.get $18 - local.get $6 - local.get $6 + local.get $10 + local.get $3 + local.get $3 i32.trunc_sat_f64_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $18 - local.get $6 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -21042,11 +20817,11 @@ call $~lib/builtins/abort unreachable end - local.get $18 - local.get $6 + local.get $10 + local.get $3 call $~lib/map/Map#delete - local.get $18 - local.get $6 + local.get $10 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -21056,14 +20831,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 f64.const 1 f64.add - local.set $6 + local.set $3 br $for-loop|4 end end - local.get $18 + local.get $10 i32.load offset=20 i32.const 50 i32.ne @@ -21075,9 +20850,9 @@ call $~lib/builtins/abort unreachable end - local.get $18 + local.get $10 call $~lib/map/Map#clear - local.get $18 + local.get $10 i32.load offset=20 if i32.const 0 @@ -21594,10 +21369,14 @@ i32.eqz if local.get $4 + i32.load offset=4 local.get $0 + i32.const 2 + i32.shl + i32.add local.get $3 i32.load offset=4 - call $~lib/array/Array#__set + i32.store local.get $0 i32.const 1 i32.add @@ -21613,7 +21392,6 @@ local.get $4 local.get $0 i32.const 2 - i32.const 0 call $~lib/array/ensureCapacity local.get $4 local.get $0 @@ -22819,10 +22597,14 @@ i32.eqz if local.get $4 + i32.load offset=4 local.get $0 + i32.const 2 + i32.shl + i32.add local.get $3 i32.load offset=8 - call $~lib/array/Array#__set + i32.store local.get $0 i32.const 1 i32.add @@ -22838,7 +22620,6 @@ local.get $4 local.get $0 i32.const 2 - i32.const 0 call $~lib/array/ensureCapacity local.get $4 local.get $0 diff --git a/tests/compiler/std/set.debug.wat b/tests/compiler/std/set.debug.wat index eda6fa83fd..df83df63c5 100644 --- a/tests/compiler/std/set.debug.wat +++ b/tests/compiler/std/set.debug.wat @@ -7,24 +7,24 @@ (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) - (type $i32_i32_i64_=>_none (func (param i32 i32 i64))) (type $i32_f32_=>_i32 (func (param i32 f32) (result i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i64_=>_i32 (func (param i64) (result i32))) (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) (type $i32_i64_=>_none (func (param i32 i64))) + (type $i32_i32_i64_=>_none (func (param i32 i32 i64))) (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) - (type $i32_i32_f32_=>_none (func (param i32 i32 f32))) - (type $i32_i32_f64_=>_none (func (param i32 i32 f64))) (type $none_=>_i32 (func (result i32))) (type $f32_=>_i32 (func (param f32) (result i32))) (type $i32_f32_i32_=>_i32 (func (param i32 f32 i32) (result i32))) (type $i32_f32_=>_none (func (param i32 f32))) + (type $i32_i32_f32_=>_none (func (param i32 i32 f32))) (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) (type $f64_=>_i32 (func (param f64) (result i32))) (type $i32_f64_i32_=>_i32 (func (param i32 f64 i32) (result i32))) (type $i32_f64_=>_none (func (param i32 f64))) + (type $i32_i32_f64_=>_none (func (param i32 i32 f64))) (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -2629,6 +2629,18 @@ local.get $1 i32.store offset=12 ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.shl + i32.add + local.get $2 + i32.store8 + i32.const 0 + drop + ) (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -2765,53 +2777,6 @@ i32.store offset=8 end ) - (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 0 - i32.shl - i32.add - local.get $2 - i32.store8 - i32.const 0 - drop - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 592 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 0 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -3747,41 +3712,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 592 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 0 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -4719,41 +4649,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 592 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 1 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -5689,41 +5584,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 592 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 1 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -6659,41 +6519,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 592 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -7617,41 +7442,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 592 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -8592,41 +8382,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 592 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -9568,41 +9323,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 592 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -10528,41 +10248,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 592 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -11505,41 +11190,6 @@ i32.const 0 drop ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 f64) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 224 - i32.const 592 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -12869,7 +12519,7 @@ local.get $8 local.get $7 i32.load8_s - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -13097,7 +12747,7 @@ local.get $8 local.get $7 i32.load8_u - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -13325,7 +12975,7 @@ local.get $8 local.get $7 i32.load16_s - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -13553,7 +13203,7 @@ local.get $8 local.get $7 i32.load16_u - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -13781,7 +13431,7 @@ local.get $8 local.get $7 i32.load - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -14009,7 +13659,7 @@ local.get $8 local.get $7 i32.load - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -14237,7 +13887,7 @@ local.get $8 local.get $7 i64.load - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -14465,7 +14115,7 @@ local.get $8 local.get $7 i64.load - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -14693,7 +14343,7 @@ local.get $8 local.get $7 f32.load - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 @@ -14921,7 +14571,7 @@ local.get $8 local.get $7 f64.load - call $~lib/array/Array#__set + call $~lib/array/Array#__uset end local.get $5 i32.const 1 diff --git a/tests/compiler/std/set.release.wat b/tests/compiler/std/set.release.wat index 37a6269eda..44303fe1f2 100644 --- a/tests/compiler/std/set.release.wat +++ b/tests/compiler/std/set.release.wat @@ -4,14 +4,13 @@ (type $none_=>_i32 (func (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_=>_none (func (param i32))) - (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i64_=>_none (func (param i32 i64))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) (type $i32_f32_=>_none (func (param i32 f32))) (type $i32_f64_=>_none (func (param i32 f64))) - (type $i32_i32_i64_=>_none (func (param i32 i32 i64))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) @@ -1827,13 +1826,12 @@ i32.store end ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) (local $4 i32) - (local $5 i32) local.get $1 local.get $0 i32.load offset=8 - local.tee $5 local.get $2 i32.shr_u i32.gt_u @@ -1851,131 +1849,73 @@ call $~lib/builtins/abort unreachable end - local.get $0 - i32.load - local.set $4 - local.get $1 - i32.const 8 - local.get $1 - i32.const 8 - i32.gt_u - select - local.get $2 - i32.shl - local.set $1 - local.get $3 - if - local.get $5 - i32.const 1 - i32.shl - local.tee $2 - i32.const 1073741820 - local.get $2 - i32.const 1073741820 - i32.lt_u - select - local.tee $2 + block $__inlined_func$~lib/rt/itcms/__renew local.get $1 + i32.const 8 local.get $1 - local.get $2 - i32.lt_u + i32.const 8 + i32.gt_u select - local.set $1 - end - block $__inlined_func$~lib/rt/itcms/__renew - local.get $4 + local.get $2 + i32.shl + local.tee $3 + local.get $0 + i32.load + local.tee $2 i32.const 20 i32.sub - local.tee $3 + local.tee $4 i32.load i32.const -4 i32.and i32.const 16 i32.sub - local.get $1 - i32.ge_u + i32.le_u if + local.get $4 local.get $3 - local.get $1 i32.store offset=16 - local.get $4 - local.set $2 + local.get $2 + local.set $1 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $1 local.get $3 + local.get $4 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $2 - local.get $4 - local.get $1 + local.tee $1 + local.get $2 local.get $3 + local.get $4 i32.load offset=16 - local.tee $3 - local.get $1 + local.tee $4 local.get $3 + local.get $4 i32.lt_u select memory.copy end + local.get $1 local.get $2 - local.get $4 i32.ne if local.get $0 - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 if local.get $0 - local.get $2 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end end local.get $0 - local.get $1 - i32.store offset=8 - end - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1616 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 0 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 local.get $3 - i32.store offset=12 + i32.store offset=8 end - local.get $0 - i32.load offset=4 - local.get $1 - i32.add - local.get $2 - i32.store8 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -2677,10 +2617,12 @@ i32.eqz if local.get $7 + i32.load offset=4 local.get $0 + i32.add local.get $4 i32.load8_s - call $~lib/array/Array#__set + i32.store8 local.get $0 i32.const 1 i32.add @@ -2696,7 +2638,6 @@ local.get $7 local.get $0 i32.const 0 - i32.const 0 call $~lib/array/ensureCapacity local.get $7 local.get $0 @@ -4288,10 +4229,12 @@ i32.eqz if local.get $7 + i32.load offset=4 local.get $0 + i32.add local.get $4 i32.load8_u - call $~lib/array/Array#__set + i32.store8 local.get $0 i32.const 1 i32.add @@ -4307,7 +4250,6 @@ local.get $7 local.get $0 i32.const 0 - i32.const 0 call $~lib/array/ensureCapacity local.get $7 local.get $0 @@ -5237,45 +5179,6 @@ i32.store end ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1616 - i32.const 130 - 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 - i32.const 1 - call $~lib/array/ensureCapacity - 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#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 @@ -5943,10 +5846,14 @@ i32.eqz if local.get $7 + i32.load offset=4 local.get $0 + i32.const 1 + i32.shl + i32.add local.get $4 i32.load16_s - call $~lib/array/Array#__set + i32.store16 local.get $0 i32.const 1 i32.add @@ -5962,7 +5869,6 @@ local.get $7 local.get $0 i32.const 1 - i32.const 0 call $~lib/array/ensureCapacity local.get $7 local.get $0 @@ -7558,10 +7464,14 @@ i32.eqz if local.get $7 + i32.load offset=4 local.get $0 + i32.const 1 + i32.shl + i32.add local.get $4 i32.load16_u - call $~lib/array/Array#__set + i32.store16 local.get $0 i32.const 1 i32.add @@ -7577,7 +7487,6 @@ local.get $7 local.get $0 i32.const 1 - i32.const 0 call $~lib/array/ensureCapacity local.get $7 local.get $0 @@ -8503,45 +8412,6 @@ i32.store end ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1616 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $3 - i32.store offset=12 - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 @@ -9192,10 +9062,14 @@ i32.eqz if local.get $7 + i32.load offset=4 local.get $0 + i32.const 2 + i32.shl + i32.add local.get $4 i32.load - call $~lib/array/Array#__set + i32.store local.get $0 i32.const 1 i32.add @@ -9211,7 +9085,6 @@ local.get $7 local.get $0 i32.const 2 - i32.const 0 call $~lib/array/ensureCapacity local.get $7 local.get $0 @@ -10759,10 +10632,14 @@ i32.eqz if local.get $7 + i32.load offset=4 local.get $0 + i32.const 2 + i32.shl + i32.add local.get $4 i32.load - call $~lib/array/Array#__set + i32.store local.get $0 i32.const 1 i32.add @@ -10778,7 +10655,6 @@ local.get $7 local.get $0 i32.const 2 - i32.const 0 call $~lib/array/ensureCapacity local.get $7 local.get $0 @@ -11784,45 +11660,6 @@ i32.store end ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1616 - i32.const 130 - 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 - i32.const 1 - call $~lib/array/ensureCapacity - 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#__get (param $0 i32) (param $1 i32) (result i64) local.get $1 local.get $0 @@ -12265,10 +12102,14 @@ i32.eqz if local.get $10 + i32.load offset=4 local.get $0 + i32.const 3 + i32.shl + i32.add local.get $7 i64.load - call $~lib/array/Array#__set + i64.store local.get $0 i32.const 1 i32.add @@ -12284,7 +12125,6 @@ local.get $10 local.get $0 i32.const 3 - i32.const 0 call $~lib/array/ensureCapacity local.get $10 local.get $0 @@ -13309,10 +13149,14 @@ i32.eqz if local.get $10 + i32.load offset=4 local.get $0 + i32.const 3 + i32.shl + i32.add local.get $7 i64.load - call $~lib/array/Array#__set + i64.store local.get $0 i32.const 1 i32.add @@ -13328,7 +13172,6 @@ local.get $10 local.get $0 i32.const 3 - i32.const 0 call $~lib/array/ensureCapacity local.get $10 local.get $0 @@ -13997,7 +13840,6 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -14008,24 +13850,24 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/set/Set#constructor - local.tee $11 + local.tee $3 i32.store loop $for-loop|0 local.get $2 f32.const 100 f32.lt if - local.get $11 + local.get $3 i32.load - local.get $11 + local.get $3 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -14037,22 +13879,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -14061,36 +13903,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $0 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $1 f32.load local.get $2 f32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $0 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|0 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 if i32.const 0 i32.const 1568 @@ -14099,12 +13941,12 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $3 local.get $2 call $~lib/set/Set#add - local.get $11 + local.get $3 i32.load - local.get $11 + local.get $3 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -14116,22 +13958,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -14140,36 +13982,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $0 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $1 f32.load local.get $2 f32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $0 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|02 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -14186,7 +14028,7 @@ br $for-loop|0 end end - local.get $11 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -14205,9 +14047,9 @@ f32.const 100 f32.lt if - local.get $11 + local.get $3 i32.load - local.get $11 + local.get $3 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -14219,22 +14061,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -14243,36 +14085,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $0 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $1 f32.load local.get $2 f32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $0 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|05 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -14282,12 +14124,12 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $3 local.get $2 call $~lib/set/Set#add - local.get $11 + local.get $3 i32.load - local.get $11 + local.get $3 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -14299,22 +14141,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -14323,36 +14165,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $0 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $1 f32.load local.get $2 f32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $0 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|08 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -14369,7 +14211,7 @@ br $for-loop|1 end end - local.get $11 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -14391,16 +14233,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $9 i32.const 0 i32.store - local.get $11 + local.get $3 i32.load offset=8 - local.set $4 - local.get $11 - i32.load offset=16 - local.set $7 + local.set $1 local.get $3 + i32.load offset=16 + local.set $5 + local.get $9 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14409,28 +14251,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $6 i64.const 0 i64.store - local.get $0 + local.get $6 i32.const 16 i32.const 20 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $10 i32.store - local.get $6 + local.get $10 i32.const 0 i32.store - local.get $6 + local.get $10 i32.const 0 i32.store offset=4 - local.get $6 + local.get $10 i32.const 0 i32.store offset=8 - local.get $6 + local.get $10 i32.const 0 i32.store offset=12 - local.get $7 + local.get $5 i32.const 268435455 i32.gt_u if @@ -14442,139 +14284,109 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.const 8 - local.get $7 + local.get $5 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $0 + local.tee $6 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $7 i32.store offset=4 - local.get $6 - local.get $5 + local.get $10 + local.get $7 i32.store - local.get $5 + local.get $7 if - local.get $6 - local.get $5 + local.get $10 + local.get $7 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $6 - local.get $5 + local.get $10 + local.get $7 i32.store offset=4 + local.get $10 local.get $6 - local.get $0 i32.store offset=8 - local.get $6 - local.get $7 + local.get $10 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $6 + local.get $9 + local.get $10 i32.store loop $for-loop|02 - local.get $7 - local.get $9 - i32.gt_s + local.get $4 + local.get $5 + i32.lt_s if + local.get $1 local.get $4 - local.get $9 i32.const 3 i32.shl i32.add - local.tee $0 + local.tee $6 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $0 - f32.load - local.set $2 - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.get $6 - i32.load offset=12 - i32.ge_u - if - local.get $0 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1616 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $6 - local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $6 - local.get $3 - i32.store offset=12 - end - local.get $6 + local.get $10 i32.load offset=4 local.get $0 i32.const 2 i32.shl i32.add - local.get $2 + local.get $6 + f32.load f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $9 + local.get $4 i32.const 1 i32.add - local.set $9 + local.set $4 br $for-loop|02 end end - local.get $6 - local.get $1 + local.get $10 + local.get $0 i32.const 2 - i32.const 0 call $~lib/array/ensureCapacity - local.get $6 - local.get $1 + local.get $10 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $8 - local.get $6 + local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 + local.tee $4 i32.store offset=8 + i32.const 0 + local.set $0 loop $for-loop|2 + local.get $0 local.get $10 - local.get $6 i32.load offset=12 i32.lt_s if - local.get $6 local.get $10 + local.get $0 call $~lib/array/Array#__get local.tee $2 i32.reinterpret_f32 @@ -14586,29 +14398,29 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.set $0 - local.get $11 + local.set $1 + local.get $3 i32.load - local.get $11 + local.get $3 i32.load offset=4 - local.get $0 + local.get $1 i32.const 16 i32.shr_u - local.get $0 + local.get $1 i32.xor i32.and i32.const 2 @@ -14622,7 +14434,7 @@ if local.get $1 i32.load offset=4 - local.tee $0 + local.tee $5 i32.const 1 i32.and if (result i32) @@ -14634,7 +14446,7 @@ f32.eq end br_if $__inlined_func$~lib/set/Set#find10 - local.get $0 + local.get $5 i32.const -2 i32.and local.set $1 @@ -14654,21 +14466,21 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $6 + local.get $4 local.get $10 + local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $10 + local.get $0 i32.const 1 i32.add - local.set $10 + local.set $0 br $for-loop|2 end end - local.get $3 + local.get $4 i32.load offset=20 - local.get $11 + local.get $3 i32.load offset=20 i32.ne if @@ -14686,9 +14498,9 @@ f32.const 50 f32.lt if - local.get $11 + local.get $3 i32.load - local.get $11 + local.get $3 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -14724,12 +14536,12 @@ i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 local.tee $0 i32.const 1 @@ -14737,7 +14549,7 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $1 f32.load local.get $2 f32.eq @@ -14746,14 +14558,14 @@ local.get $0 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|014 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -14763,12 +14575,12 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $3 local.get $2 call $~lib/set/Set#delete - local.get $11 + local.get $3 i32.load - local.get $11 + local.get $3 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -14804,12 +14616,12 @@ i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 local.tee $0 i32.const 1 @@ -14817,7 +14629,7 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $1 f32.load local.get $2 f32.eq @@ -14826,14 +14638,14 @@ local.get $0 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|017 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 if i32.const 0 i32.const 1568 @@ -14849,7 +14661,7 @@ br $for-loop|3 end end - local.get $11 + local.get $3 i32.load offset=20 i32.const 50 i32.ne @@ -14868,9 +14680,9 @@ f32.const 50 f32.lt if - local.get $11 + local.get $3 i32.load - local.get $11 + local.get $3 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -14906,12 +14718,12 @@ i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 local.tee $0 i32.const 1 @@ -14919,7 +14731,7 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $1 f32.load local.get $2 f32.eq @@ -14928,14 +14740,14 @@ local.get $0 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|020 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 if i32.const 0 i32.const 1568 @@ -14944,12 +14756,12 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $3 local.get $2 call $~lib/set/Set#add - local.get $11 + local.get $3 i32.load - local.get $11 + local.get $3 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -14985,12 +14797,12 @@ i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 local.tee $0 i32.const 1 @@ -14998,7 +14810,7 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $1 f32.load local.get $2 f32.eq @@ -15007,14 +14819,14 @@ local.get $0 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|023 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -15024,12 +14836,12 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $3 local.get $2 call $~lib/set/Set#delete - local.get $11 + local.get $3 i32.load - local.get $11 + local.get $3 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -15065,12 +14877,12 @@ i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 local.tee $0 i32.const 1 @@ -15078,7 +14890,7 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $1 f32.load local.get $2 f32.eq @@ -15087,14 +14899,14 @@ local.get $0 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|026 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 if i32.const 0 i32.const 1568 @@ -15110,7 +14922,7 @@ br $for-loop|4 end end - local.get $11 + local.get $3 i32.load offset=20 i32.const 50 i32.ne @@ -15122,9 +14934,9 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $3 call $~lib/set/Set#clear - local.get $11 + local.get $3 i32.load offset=20 if i32.const 0 @@ -15729,9 +15541,9 @@ ) (func $std/set/testNumeric (local $0 i32) - (local $1 i32) + (local $1 f64) (local $2 i32) - (local $3 f64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -15739,7 +15551,6 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -15750,23 +15561,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 call $~lib/set/Set#constructor - local.tee $10 + local.tee $2 i32.store loop $for-loop|0 - local.get $3 + local.get $1 f64.const 100 f64.lt if - local.get $10 - local.get $3 + local.get $2 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -15776,11 +15587,11 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $3 + local.get $2 + local.get $1 call $~lib/set/Set#add - local.get $10 - local.get $3 + local.get $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -15791,14 +15602,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 f64.const 1 f64.add - local.set $3 + local.set $1 br $for-loop|0 end end - local.get $10 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -15811,14 +15622,14 @@ unreachable end f64.const 50 - local.set $3 + local.set $1 loop $for-loop|1 - local.get $3 + local.get $1 f64.const 100 f64.lt if - local.get $10 - local.get $3 + local.get $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -15829,11 +15640,11 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $3 + local.get $2 + local.get $1 call $~lib/set/Set#add - local.get $10 - local.get $3 + local.get $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -15844,14 +15655,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 f64.const 1 f64.add - local.set $3 + local.set $1 br $for-loop|1 end end - local.get $10 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -15864,7 +15675,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $5 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -15873,16 +15684,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $9 i32.const 0 i32.store - local.get $10 + local.get $2 i32.load offset=8 local.set $6 - local.get $10 - i32.load offset=16 - local.set $8 local.get $2 + i32.load offset=16 + local.set $4 + local.get $9 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -15891,28 +15702,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $7 i64.const 0 i64.store - local.get $0 + local.get $7 i32.const 16 i32.const 22 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $10 i32.store - local.get $4 + local.get $10 i32.const 0 i32.store - local.get $4 + local.get $10 i32.const 0 i32.store offset=4 - local.get $4 + local.get $10 i32.const 0 i32.store offset=8 - local.get $4 + local.get $10 i32.const 0 i32.store offset=12 - local.get $8 + local.get $4 i32.const 134217727 i32.gt_u if @@ -15924,140 +15735,110 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.const 8 - local.get $8 + local.get $4 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $0 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $8 i32.store offset=4 - local.get $4 - local.get $5 + local.get $10 + local.get $8 i32.store - local.get $5 + local.get $8 if - local.get $4 - local.get $5 + local.get $10 + local.get $8 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 - local.get $5 + local.get $10 + local.get $8 i32.store offset=4 - local.get $4 - local.get $0 + local.get $10 + local.get $7 i32.store offset=8 + local.get $10 local.get $4 - local.get $8 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $4 + local.get $9 + local.get $10 i32.store loop $for-loop|02 - local.get $8 - local.get $9 - i32.gt_s + local.get $3 + local.get $4 + i32.lt_s if local.get $6 - local.get $9 + local.get $3 i32.const 4 i32.shl i32.add - local.tee $0 + local.tee $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $0 - f64.load - local.set $3 - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.get $4 - i32.load offset=12 - i32.ge_u - if - local.get $0 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1616 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $0 - i32.const 1 - i32.add - local.tee $2 - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $4 - local.get $2 - i32.store offset=12 - end - local.get $4 + local.get $10 i32.load offset=4 local.get $0 i32.const 3 i32.shl i32.add - local.get $3 + local.get $7 + f64.load f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $9 + local.get $3 i32.const 1 i32.add - local.set $9 + local.set $3 br $for-loop|02 end end - local.get $4 - local.get $1 + local.get $10 + local.get $0 i32.const 3 - i32.const 0 call $~lib/array/ensureCapacity - local.get $4 - local.get $1 + local.get $10 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $4 + local.get $5 + local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $3 i32.store offset=8 + i32.const 0 + local.set $0 loop $for-loop|2 - local.get $11 - local.get $4 + local.get $0 + local.get $10 i32.load offset=12 i32.lt_s if + local.get $2 local.get $10 - local.get $4 - local.get $11 + local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -16069,21 +15850,21 @@ call $~lib/builtins/abort unreachable end + local.get $3 + local.get $10 local.get $0 - local.get $4 - local.get $11 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $11 + local.get $0 i32.const 1 i32.add - local.set $11 + local.set $0 br $for-loop|2 end end - local.get $0 + local.get $3 i32.load offset=20 - local.get $10 + local.get $2 i32.load offset=20 i32.ne if @@ -16095,14 +15876,14 @@ unreachable end f64.const 0 - local.set $3 + local.set $1 loop $for-loop|3 - local.get $3 + local.get $1 f64.const 50 f64.lt if - local.get $10 - local.get $3 + local.get $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -16113,11 +15894,11 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $3 + local.get $2 + local.get $1 call $~lib/set/Set#delete - local.get $10 - local.get $3 + local.get $2 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -16127,14 +15908,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 f64.const 1 f64.add - local.set $3 + local.set $1 br $for-loop|3 end end - local.get $10 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -16147,14 +15928,14 @@ unreachable end f64.const 0 - local.set $3 + local.set $1 loop $for-loop|4 - local.get $3 + local.get $1 f64.const 50 f64.lt if - local.get $10 - local.get $3 + local.get $2 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -16164,11 +15945,11 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $3 + local.get $2 + local.get $1 call $~lib/set/Set#add - local.get $10 - local.get $3 + local.get $2 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -16179,11 +15960,11 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $3 + local.get $2 + local.get $1 call $~lib/set/Set#delete - local.get $10 - local.get $3 + local.get $2 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -16193,14 +15974,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 f64.const 1 f64.add - local.set $3 + local.set $1 br $for-loop|4 end end - local.get $10 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -16212,9 +15993,9 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $2 call $~lib/set/Set#clear - local.get $10 + local.get $2 i32.load offset=20 if i32.const 0